Centos查找目录下所有文件中是否包含指定字符串的方法

2020-01-30 15:29:18于丽

使用sed脚本文件格式为:sed[options] -f sed脚本文件 输入文件

sed脚本文件[options] 输入文件

--不管是使用shell命令行方式或脚本文件方式,如果没有指定输入文件,sed从标准输入中接受输入,一般是键盘或重定向结果。

(2)sed 命令的options如下

-n:不打印

-c:下一命令是编辑命令

-f:如果正在调用sed脚本文件

(3)sed在文件中查询文本的方式

--使用行号,可以是一个简单的数字,或是一个行号的范围

--使用正则表达式

(4)读取文本的方式

x x为一行号

x,y 表示行号范围从x到y

/pattern/ 查询包含模式的行

/pattern/pattern/ 查询包含两个模式的行

pattern/,x 在给定的行号上查询包含模式的行

x,/pattern/ 通过行号和模式查询匹配行

x,y! 查询不包含指定行号x和y的行

(5)基本sed编辑命令

p 打印匹配行

d 删除匹配行

= 显示文件行号

a 在定位行号后附加新文本信息

i 在定位行号后插入新文本信息

c 用新文本替换定位文本

s 使用替换模式替换相应模式

r 从另一个文件中读文件

w 写文本到一个文件

q 第一个模式匹配完成后推出或立即退出

l 显示与八禁止ASCII代码等价的控制字符

{} 在定位行执行的命令组

n 从另一个文件中读文本下一行,并附加在下一行

g 将模式2粘贴到/pattern n/

y 传送字符

(6)举例说明:

sed -n '2p' test.txt 打印第二行的信息(注意:-n是不打印不匹配的信息,若没加-n,则打印文件的所有信息而不是匹配信息)

sed -n '1,4p' test.txt 打印第一行到第四行的信息

sed -n '/los/p' test.txt模式匹配los,并打印出来

sed -n '2,/los/p' test.txt 从第二行开始。。知道匹配第一个los

sed -n '/^$/p' test.txt 匹配空行

sed -n -e '/^$/p' -e '/^$/=' test.txt 打印空行及行号

sed -n '/good/amorning' test.txt 在匹配到的good后面附加morning

sed -n '/good/imorning' test.txt 在匹配到的good前面插入morning

sed -n '/good/cmorning' test.txt 将匹配到的good替换成morning

sed '1,2d' test.txt 删除第1和2行

sed 's/good/good morning/g' test.txt 匹配good并替换成goodmorning

send 's/good/& hello /p' test.txt 匹配到good就在其后面加上hello

send 's/good/ hello &/p' test.txt 匹配到good就在其前面加上hello

6.合并与分割(sort,uniq,join,cut,paste,split)

(1)sot命令

sort [options] files 许多不同的域按不同的列顺序排序

-c 测试文件是否已经排序

-m 合并两个排序文件

-u 删除所有同样行

-o 存储sort结果的输出文件名

-t 域分隔符,用非空格或tab开始排序