【Shell脚本】sed命令

一、sed语法格式和选项

sed(Stream Editor)流编辑器,对标准输出或文件逐行处理。

(1)stdout | sed [option] "pattern command"

(2)sed [option] "pattern command" file

-n:只打印模式匹配行

-e:进行多项编辑

-f:编辑动作保存在文件中,指定文件执行

-r:支持扩展正则表达式

-i:直接修改文件内容

下面为例子:--------------------------------------------

‘p’为print打印command,只有此命令会把原行和匹配的都打印出来,故会重复两遍,所以我们要加上参数。

image.png

-e对有多项编辑的时候使用

image.png

实际工作中有的命令特别复杂,我们把它保存在一个文件里,我们在命令行指定-f使用文件即可

image.png

上面的-e两个选项,也可以用一个扩展正则表达式来匹配

image.png

参数s:替换文本,

s/pattern-to-find/replacement-pattern/[g p w n]

后面不加参数是将第1个查到的替换,若加g表明全局替换。但此时并不会影响原文件。想要修改原文件要用-i

image.png

image.png


二、sed中pattern详解

10command:匹配到第10行

10,20command:匹配从第10行开始,到第20行结束

10,+5command:匹配从第10行开始,到第15行结束

/pattern1/command:匹配到pattern1的行,可以在字符串也可以是正则表达式

/pattern1/,/pattern2/command:匹配到pattern1的行开始,到匹配到pattern2的行结束

10,/pattern1/command:匹配从第10行开始,到匹配到pattern1的行结束

/pattern1/,10command:匹配到pattern1的行开始,到第10行匹配结束

image.png

pattern里转义字符

image.png

image.png



猜你喜欢

转载自blog.51cto.com/11926720/2498607