Shell-三剑客(sed)

Shell-三剑客(sed)

Sed 是Linux平台下的轻量级流编辑器.一般处理文本文件.

需要注意的是vim也是处理文本文件的工具,它们俩最大的区别在于:

sed不需要像vim一样打开文件,而是可以在脚本里面直接操作文档,所以大家将会发现它在Shell脚本里的使用频率是很高的.

Sed的语法格式如下:

sed  [-nefri]   [n1,n2]  动作

第一部分: [ - n e f r i ]

-n 是安静模式,只有经过sed处理过的行才会显示出来,其他不显示

-e 表示直接在命令行模式上进行sed的操作.貌似是默认选项,不用写

-f  将sed的操作写在一个文件里,用的时候 -f filename 就可以按照内容进行sed操作

-r 表示使sed支持扩展正则表达式

-i 表示直接修改读取的文件内容,而不是输出到终端.

第二部分:[n1,n2]

[n1,n2]表示选择要进行处理的行,不是必需的  10,20 表示在10~20行之间处理.

第三部份:动作  (动作中的参数 a c d i p s g )动作最好用' '括起来,防止因空格导致错误

a  表示添加,后接字符串,添加到当前行的下一行

c  表示替换 后接字符串 用它替换n1到n2之间的行

d  表示删除符合模式的行 它的语法为 sed  '/regexp/d'    / / 之间是正则表达式 模式在d前面 d后面一般不接任何内容

i  表示插入  后接字符串 添加到当前行的上一行 

p  表示打印 打印选择的莫个数据 通常与-n(安静模式)一起使用

s  表示搜索 还可以替换 类似于vim里的搜索替换功能 

例如: "1,20s/old/new/g" 表示将1~20行的old替换为new  g在这里表示处理这一行所有匹配的内容

 

sed的基础实例如下:

实例1  d  删除

显示passwd内容 将2~5行删除后显示(注意sed只是输出终端内容,并没有修改文件本身内容.)

 

 实例2  a 添加  

在第2行后面的一行加上"Hello,world"字符串,命令如下所示

 实例3  续航符  \

在第2行后面一行加上俩行字,例如: "this is first line !" 和"this is second line !"

这里使用了续航符 \ 

实例4 替换 c

将第2~5行的内容替换成"I am Macy" 

实例5 

 

posted @ 2020-06-06 07:32  wqx951  阅读(109)  评论(0编辑  收藏  举报