sed是一个流文本处理器,它会讲文件中的每一行读入内存中,也就是sed命令中的模式空间。每读入一行后,匹配模式和命令。处理结束后显示到屏幕上。注意它并不对源文件做修改,只是在内存中修改罢了
sed命令的格式“
sed [options] 'AddressCommand' file.....
其中,address定位处理那些行。它符合以下几种形式:
Startline,Endline:比如1,100,代表读取第一行到第二行
$代表最后一行
/正则表达式/:/^root/,代表行首为root的行。记住正则表达式一定要用//括起来
/正则表达式1/,/正则表达式2/:从1开始,到2结束
linenunber,精确的行
startline,+N:从startline开始向后N行
Command:
d:删除符合条件的行
p:显示符合条件的行,默认情况下每一行会显示两次,因为sed命令的默认行为就是把模式空间的行显示到屏幕上,可以和-n选项配合使用
a \string:在指定的行后面追加新行,换行符\n
i \string:在指定的行前面追加新行
r file: 将指定的文件内容添加至符合条件的行处
w file:将指定范围内的内容另存到指定的文件中
s/正则表达式/string/:查找模式匹配的字符串并替换(string)
options
-n:静默模式,不再默认显示模式空间中的内容。