首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Unix脚本读取特定的行和位置

Unix脚本中的 for 循环可以用于遍历一个由多个文件组成的列表。read 命令用于获取文件的内容,并使用 while read 方式将内容分割到不同的变量中。使用 while 循环可以实现对指定文件的逐行扫描。

下面是一个典型的示例,它将当前目录中的所有 .txt 文件的内容读出,并依次赋值给变量 file_content

代码语言:txt
复制
#!/bin/sh

# 使用 for 循环遍历文件列表
for file in *.txt; do
    # 对于每个文件,使用 while 循环读取每一行
    while read -r line; do
        # 如果当前行的末尾包含指定的行,则执行相应的操作
        if [[ $line == *"Your searched line" ]]; then
            echo "$line"
            exit 0
        fi
    done <"$file"
done

此脚本用于读取指定文件的第12行、并输出该行:

代码语言:txt
复制
for file in *.txt; do
    while read -r line; do
        if [[ $line == *"第12行:" ]]; then
            echo "$line"
            exit 0
        fi
    done <"$file"
done

这个脚本用于读取多个文件,并在找到包含指定单词的行时输出行。如果找不到满足条件的行,它将忽略所有的文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Windows DOS格式脚本和Linux Unix格式脚本差异导致的跨平台问题

    一、DOS格式和Unix格式介绍DOS格式和Unix格式是两种不同的文本文件格式,它们在行结束符(line ending)上有显著的区别。这些差异源于不同的操作系统历史和设计哲学。...1.1 DOS格式(也称为Windows格式)DOS格式文本文件使用特定的字符序列来表示行结束。...在DOS、Windows以及许多其他早期的操作系统(如CP/M)中,行结束符由两个字符组成:回车(Carriage Return, CR)和换行(Line Feed, LF)。...这种格式更为简洁,是Unix、Linux以及较新的Mac OS版本(从Mac OS X开始)的标准行结束方式。特点:行结束符是\n。...-n myScript.sh注:用"-n" 选项只会读取shell脚本,用于测试shell脚本是否存在语法错误,但不会实际执行脚本。

    5310

    使用Lua脚本实现对Redis数据库的读取和写入操作

    图片要在Lua脚本中实现对Redis数据库的读取和写入操作,可以使用Redis的EVAL命令执行Lua脚本,在脚本中调用Redis的读写操作。...Lua脚本读写操作实例下面是一个示例脚本,演示如何在Lua脚本中实现对Redis数据库的读写操作。...("GET", key)return result在示例中,首先声明了一个key和value变量,然后通过redis.call函数调用Redis的SET命令将数据写入数据库。...接着通过redis.call函数调用Redis的GET命令读取刚才写入的数据。最后将读取的结果作为返回值返回。执行EVAL命令执行这个Lua脚本,可以使用Redis的EVAL命令。...请注意,在实际的应用中,可以根据需要在Lua脚本中编写更复杂的逻辑,调用Redis提供的各种读写命令来操作数据。

    87351

    以太坊中Solidity行 · 大金刚境:语法详解#变量的数据位置和枚举

    以太坊中Solidity行 · 大金刚境:语法详解#变量的数据位置和枚举 众所周知,以太坊开发拥有四种境界:金刚境,指玄境,天象境以及陆地神仙。...今天我们继续来学习Solidity的语法来深造大金刚境界。 一、变量的数据位置 在solidity中,变量的位置主要分为两类。第一类是memory,是将变量存储在内存之中。...还有一类是storage,这个类型修饰的数据会被永久的存储在区块链之上。其实还有一类是calldata,该位置上的数据是只读的,并不会在区块链上持久化,一般在外部函数才会指定。...需要注意的是,状态变量如果不指定,默认是存储在storage中。而在函数之中的局部变量同样是在storage。不过函数参数以及返回值它们的默认存储位置是存储在内存之中,即memory。...如果memory到storage是不会改变源数据的,具体例子在此不再详述。 然后再从storage到storage和memory到memory一样也是会更改源数据的。

    44620

    sed & awk 第二版学习(五)—— 高级 sed 命令

    控制转移到脚本的顶端并且不打印那一行。当读取下一行时,它匹配模式“2”,因此将已经复制到保持空间的行追加到模式空间之后,然后到达脚本底端,两行都被打印出来。...三、高级的流控制命令 分支(b)和测试(t)命令将脚本中的控制转移到包含特殊标签的行。如果没有指定标签,则将控制转移到脚本的结尾处。...下面的脚本使用分支命令创建循环: :top command1 command2 /pattern/b top command3 一旦读取一个输入行,command1 和 command2...在单引号对中的双引号序列确保被包围的参数首先被 shell 求值,然后再由 sed 对 sed 脚本进行处理。 之后的 shift 用于改变位置参数的位置。‌...这种用法在 shell 脚本中意味着循环将遍历位置参数(即 1、2、 for 循环体中是作用于文件的 sed 脚本。

    12810

    04-shell

    shell-01 1.什么是shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容...Bsh是产生较早的UNIX Shell程序,实现了最基本的命令解释器的功能,同时也可以作为脚本编程语言。.../bin/sh是shell脚本的一个标志,声明这个script使用的shell。 第一行的#!是一个约定标记, 它告诉脚本这段脚本需要什么解释器来执行....第二行的echo命令则负责向屏幕上输出一句话。 运行这个脚本文件 sh test.sh 或者是 ....6.2.5 特殊变量 **位置变量** 常用的特殊位置参数说明 位置变量 作用说明 $0 获取当前执行的shell脚本的文件名,如果执行脚本带路径那么就包括脚本路径。

    7610

    【Linux】BASH基本攻略,分分钟PK掉黑客达人

    用户可以直接输入命令,也可以从称为名为shell脚本或shell程序的文件中读取。 Shell types UNIX系统通常提供多种shell类型。...命令查找数据文件的默认位置。...UNIX文件层次结构呈树状。要访问特定的文件夹或文件,需要穿过树结构中的某些特定路径。路径需借助斜杠(/)字符分隔上述结构的每个节点。 文件定位/文件导航 如Ls和cd这样的命令用于定位和管理文件。...· Grep(全称:global regular expression print)搜索具有给定字符串的行或查找指定输入流中的模式。以下命令将读取所有文件并输出包含单词“Tom”的所有行。...排序过滤器按首字母顺序或数字顺序对行进行排序 cat命令首先读取文件fruits.txt的内容,然后对其进行排序。 uniq代表unique,它提供输入流中特殊行的数量。

    2.5K30

    Sed 命令

    1.工作流程sed工作流程主要包括读取、执行和显示三个过程: 读取:sed从 输入流 (文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)...通常与 -n 选项一起使用=:打印行号l:打印数据流中的文本和不可打印的ASCII字符r:在指定行下面读取文件内容w:将文件内容保存到新文件中二、打印命令演示1.打印文件内容#打印文件a.txt,sed...九、将字符位置互换#将字符11和33互换位置echo '112233' | sed -r 's/(11)(22)(33)/\3\2\1/' 332211#将首字符 1 与最后字符 3 互换位置echo...'112233' | sed -r 's/^(.)(.+)(.)$/\3\2\1/' 312231十、将字符位置互换1.删除匹配行的上一行和下一行:sed -i -e '/string/n;d' -e...P;D' filename3.删除匹配到特定字符所在行的下一行 sed -i -e ‘/string/n;d‘ filename4.sed中使用变量,删除匹配行的上一行和下一行:AA=string

    19310

    sed & awk 第二版学习(四)—— 基本 sed 命令

    这是因为一旦执行这个命令,那么在“空的”模式空间中就不会再有命令执行,即不允许在被删除的行上进行进一步操作。删除命令会导致读取新的输入行,而编辑脚本则从头开始新的一轮。...实际上,它删除当前行并且在该位置放置所提供的文本。当想要匹配行并且整体取代它时可以使用这个命令。...下一步 下一步(n)命令输出模式空间的内容,然后读取输入的下一行。它总是在读入新行之后从脚本的顶端开始。next 命令改变了正常的流控制(直到到达脚本的底部才会输出模式空间的内容)。...如果一个脚本中有多个指令写到同一个文件,那么每个写命令都将内容追加到这个文件中。而且,每个脚本最多只能打开 10 个文件。 读命令对于将一个文件的内容插入到另一个文件中的特定位置很有用。...后面的命令不会影响从这个文件中读取的行。

    10010

    UNIX 入门指南 – 什么是 Shell 脚本

    Shell 是用户访问 Unix 操纵系统的接口。它接收用户的输入,然后基于该输入执行程序。程序执行完后,结果会显示在显示器上。 Shell 就是运行指令、程序和 Shell 脚本的运行环境。...每一种 Shell 都有其特定的指令和函数集。 Shell 提示符 提示符 $ 被称为命令提示符。当显示命令提示符后,用户就可以键入命令。...Bourne shell通常是安装在大多数版本的 Unix 中的 /bin/sh 目录。由于这个原因,在不同版本的 Unix 上也会选择这种 Shell 来编写脚本。...Shell 脚本有条件语句(A 大于 B)、循环语句、读取文件和存储数据、读取变量且存储数据,当然,Shell 脚本也包括函数。 Shell 脚本和函数都是翻译型语言,所以他们并不会被编译。...称为 bang 为了创建包含这些指令的脚本,用户需要先键入 shebang 行,然后键入指令: #!/bin/bash pwd ls Shell 注释 可以像下面一样来为脚本添加注释: #!

    1K00

    shell脚本语言(超全超详细)

    指定的解析器)但是第一行还是要写的 注意:windows下 写脚本 在linux下执行 注意 4、变量 案例: 案例:读取多个值 案例只读变量: 查看环境变量:env 导出环境变量 作用:(让其他...shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又是一种脚本语言...unix文件 方法一:dos2unix 如果没有该插件 需要安装 sudo apt-get install dos2unix dos2unix shell脚本 转换成功就可以执行运行 方法二:...需要用vi打开脚本,在最后一行模式下执行 :set ff=unix 4、变量 定义变量 变量名=变量值 如:num=10 引用变量 $变量名 unset :清除变量值 运行结果...: 从键盘获取值read 运行结果: 案例: 在一行上显示和添加提示 需要加上-p 运行结果: 案例:读取多个值 运行结果: 案例只读变量: 运行结果

    2.7K20

    如何友好的把Python和Bash结合在一起

    随着Linux社区对命令行的依赖不断增长,UNIX shell(如bash和zsh)已发展成为极其强大的工具,可以补充UNIX shell的经验。...使用bash和其他类似的shell,可以使用许多强大的功能,例如管道,文件名通配符以及从称为脚本的文件中读取命令的功能。 让我们看一个真实的示例来演示命令行的功能。...脚本之间的代码重用往往很困难,并且脚本往往非常特定于某个问题。 用于高级功能(例如HTML解析或HTTP请求)的库不像现代编程和脚本语言那样容易获得。...在这种情况下使用Python的优点如下: 与cat和sort等工具链接的能力。简单的实用程序(逐行读取文件并以数字方式对文件进行排序)由久经考验的UNIX命令处理。...为了展示以模块化和管道方式组合Python脚本的强大功能,让我们进一步把问题放大。让我们找到该服务的前五名用户。head是一个命令,它允许您指定一定数量的行以显示给定的标准输入。

    1K10

    从npm、npx说起,到shell

    背景:目前整个我们前端工程栈有多处 CLI(包括工具、模板等等),CLI 带来了巨大的便利性,但其在 Windows 下执行往往和 Mac/Unix 系统下表现不同。...其能运行于大多数 Unix 系统的操作系统之上,包括 Linux 和 Mac OS 都将他作为默认 shell。...Ctrl + C:中止当前正在执行的命令。 Shift + PageUp:向上滚动。 Shift + PageDown:向下滚动。 Ctrl + U:从光标位置删除到行首。...脚本 Shebang 行 脚本的第一行通常是指定解释器,即这个脚本必须通过什么解释器执行。这一行以#!字符开头,这个字符称为 Shebang,所以这一行就叫做 Shebang 行。 #!...后面就是脚本解释器的位置,Bash 脚本的解释器一般是/bin/sh或/bin/bash。 #!/bin/sh # 或者 #!/bin/bash #!与脚本解释器之间有没有空格,都是可以的。

    3.9K20

    Python 入门指南第二节 | 使用 Python 解释器

    在 Windows 机器上,Python 通常安装在 C:\Python35 位置,当然你可以在运行安装向导时修改此值。...Python 解释器具有简单的行编辑功能。在 Unix 系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑和历史记录等功能。...Python 解释器有些操作类似 Unix shell:当使用终端设备(tty)作为标准输入调用时,它交互的解释并执行命令;当使用文件名参数或以文件作为标准输入调用时,它读取文件并将文件作为 脚本 执行...使用脚本文件时,经常会运行脚本然后进入交互模式。这也可以通过在脚本之前加上 -i 参数来实现。 2.1.1. 参数传递 调用解释器时,脚本名和附加参数传入一个名为 sys.argv 的字符串列表。...你能够获取这个列表通过执行 import sys,列表的长度大于等于1;没有给定脚本和参数时,它至少也有一个元素:sys.argv[0] 此时为空字符串。

    40131

    软件测试|Linux三剑客之awk命令详解

    图片简介awk 是一种强大的文本处理工具,在 Unix 和类 Unix 系统中广泛使用。它允许您在文本文件中进行复杂的数据处理和格式化输出。...打印特定列:awk '{ print $n }' input_file此命令将打印 input_file 文件的第n列。...awk文件中读取脚本awk 允许将脚本命令存储到文件中,然后再在命令行中引用,比如:cat awk.sh{print $1 "'s home directory is " $6}$ awk -F: -f...默认情况下,awk 会从输入中读取一行文本,然后针对该行的数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用 BEGIN 关键字。...BEGIN 会强制 awk 在读取数据前执行该关键字后指定的脚本命令,例如:awk 'BEGIN {print "The fruits.txt Contents:"}> {print $0}' fruits.txtThe

    41320

    Shell脚本之常用Linux命令使用介绍

    其读取输入数据重新格式化后输出,它擅长将标准输入数据转换成命令行参数,而且能够处理管道或者stdin并将其转换成特定命令的命令参数,也可以将单行或多行文本输入转换为其他格式,例如多行变单行以及单行变多行...xargs 默认命令是echo 意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。...-L num # 从标准输入一次读取 num 行送给 command 命令。...定义一个测试文件,内有多行文本数据: $cat test.txt a b c d e f g h i j k l m n o p q r s t u v w x y z #示例1.多行输入单行输出和指定行输出....读取stdin将格式化后的参数传递给命令 #假设一个命令为 sk.sh 和一个保存参数的文件arg.txt: #!

    1.3K20

    Python学习之如何使用Python解释器

    Python 解释器具有简单的行编辑功能。在 Unix 系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑和历史记录等功能。...Python 解释器有些操作类似 Unix shell:当使用终端设备(tty)作为标准输入调用时,它交互地解释并执行命令;当使用文件名参数或以文件作为标准输入调用时,它读取文件并将文件作为 脚本 执行...使用脚本文件时,经常会运行脚本然后进入交互模式。这也可以通过在脚本之前加上 -i 参数来实现。 1.1. 参数传递 调用解释器时,脚本名和附加参数传入一个名为 sys.argv 的字符串列表。...你能够通过执行import sys 来获取这个列表,列表的长度大于等于1;没有给定脚本和参数时,它至少也有一个元素:sys.argv[0] 此时为空字符串。...注意,这种标记方法在旧的 Python 版本中(2.2 及更早)是不能识别的,同样也不能被能够处理 #! (只在 Unix 系统上使用)行的操作系统识别。

    1.2K20

    600个常用Linux命令大全,从A到Z

    exit 用于退出当前运行的shell expa 将制表符转换为文件中的空格,当未指定文件时,它会从标准输入中读取 expect 此命令或脚本语言适用于需要用户输入的脚本,通过提供输入来自动执行任务...getent 用于获取许多称为数据库的重要文本文件中的条目 gpasswd 用于管理 /etc/group 和 /etc/gshadow grep 在文件中搜索特定的字符模式,并显示包含该模式的所有行.../移动到左一个位置。...虚拟作业有助于延迟执行 source 用于读取和执行文件的内容(通常是一组命令),在当前 shell 脚本中作为参数传递 sort 用于对文件进行排序,按特定顺序排列记录 split 用于将大文件拆分成小文件...uniq 用于报告或过滤掉文件中的重复行 unix2dos 将 Unix 文本文件转换为 DOS 格式 until 用于执行一组命令,只要“直到”命令中的最后一个命令的退出状态不为零 uptime 用于找出系统活动

    54211

    Linux命令大全,从A到Z都有总结,封神之作!

    cal 用于查看特定月份或全年的日历,默认情况下,它显示当前月份的日历作为输出 case 当我们不得不在单个变量上使用多个 if/elif 时,这是最好的选择 cat 从文件中读取数据并将其内容作为输出...它以后缀表达式的形式计算表达式 dd Unix 和类 Unix 操作系统的命令行实用程序,其主要目的是转换和复制文件 declare 用于声明shell变量和函数...expa 将制表符转换为文件中的空格,当未指定文件时,它会从标准输入中读取 expect 此命令或脚本语言适用于需要用户输入的脚本,通过提供输入来自动执行任务 export 是 bash shell...grep 在文件中搜索特定的字符模式,并显示包含该模式的所有行 groupadd 用于创建新的用户组...虚拟作业有助于延迟执行 source 用于读取和执行文件的内容(通常是一组命令),在当前 shell 脚本中作为参数传递 sort 用于对文件进行排序

    2.3K02
    领券