粘贴一段wiki的介绍:
sed (stream editor) is a Unix utility that parses and transforms text, using a simple, compact programming language. sed was developed from 1973 to 1974 by Lee E. McMahon of Bell Labs, and is available today for most operating systems.
总的来说就是sed是unix类os下的文本操作工具,负责解析和转换文本
文本处理的三驾马车
sed [option] 'AddressCommond' file
StartLine,endLine
比如1,100,表示1-100行
特别注意的是,可以使用$:最后一行
/RegExp/(正则表达式)
比如: /^root/,表示以root开始的行
/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始到被pattern2匹配到的行结束
LineNumber
指定某行
startLine, +N
从startLine开始向后的N行,总共是N+1行
sed的命令很多,这里我只列出常用的commonds
d
:删除符合条件的行p
:显示符合条件的行a \string
:在匹配的行后追加新行,内容是stringi \string
:在匹配的行前追加新行,内容是stringr FILE
:将指定的文件的内容添加到匹配的行之后w FILE
:将指定范围内的内容另存到指定的文件中s /pattern/ReplaceString/修饰符
:将符合模式的字符串替换为ReplaceString(默认只替换每行中第一次被模式匹配到的串) 可以使用三个相同的字符来代替’/’,上面的字符串替换等价于s #pattern#ReplaceString#修饰符
特别的可以使用&:表示整个模式匹配到的字符串
g
:全局替换i
:匹配时忽略大小写-n
:静默模式,不显示模式空间中的内容-r
:使用扩展的正则表达式-i
:直接修改源文件(危险慎重使用)-e 处理 -e 处理
:连续进行sed的处理-f
:指定处理脚本 另外可以使用类似sed -f SCRIPTFILE file
(将SCRIPTFILE中的每个命令作用在file上)