一、sed语法格式和选项
sed(Stream Editor)流编辑器,对标准输出或文件逐行处理。
(1)stdout | sed [option] "pattern command"
(2)sed [option] "pattern command" file
-n:只打印模式匹配行
-e:进行多项编辑
-f:编辑动作保存在文件中,指定文件执行
-r:支持扩展正则表达式
-i:直接修改文件内容
下面为例子:--------------------------------------------
‘p’为print打印command,只有此命令会把原行和匹配的都打印出来,故会重复两遍,所以我们要加上参数。
-e对有多项编辑的时候使用
实际工作中有的命令特别复杂,我们把它保存在一个文件里,我们在命令行指定-f使用文件即可
上面的-e两个选项,也可以用一个扩展正则表达式来匹配
参数s:替换文本,
s/pattern-to-find/replacement-pattern/[g p w n]
后面不加参数是将第1个查到的替换,若加g表明全局替换。但此时并不会影响原文件。想要修改原文件要用-i
二、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行匹配结束
pattern里转义字符