SED用法
sed:Stream EDitor
行编辑器
sed:模式空间
默认不编辑原文件,仅对模式空间的数据做处理,将处理后的结果输出至屏幕
sed [options] 'AdressCommand' file…
OPTIONS
-n:静默模式,不再默认显示模式空间中的内容
-i:直接修改原文件
-e SCRIPT -e SCRIPT…:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT:指定脚本文件
-r:使用扩展正则表达式
Adress:
1、Startline,Endline
1,100
$:最后一行
$-1:倒数第二行
2、/RegExp/
/^root/
3、/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,之间的所有行
4、LineNumber
指定的行
5、StartLine,+N
从指定行开始,向后的N行
Command:
d:删除符合条件的行
eg:sed '1,$-2d' /etc/fstab
sed '/oot/d' /etc/fstab
sed '1,$-2d' /etc/fstab
sed '1d' /etc/fstab
sed '1,+2d' /etc/fstab
p:显示符合条件的行
eg:sed -n '/^\//p' /etc/fstab
a \string:在指定的行后面追加新行,内容为“string”
eg:sed '/^\//a \hello body' /etc/fstab
sed '/^\//a \hello body\nhello baby' /etc/fsbat
i \string:在指定的行前面追加新行,内容为“string”
eg:sed '/^\//i \hello body' /etc/fstab
sed '/^\//i \hello body\nhello baby' /etc/fsbat
r FILE:将指定的文件内容添加至符合条件的行后
eg:sed '2r file' /etc/fstab
sed '1,2r file' /etc/fstab
w FILE:将地址指定的范围内的行另存至指定的文件中
eg:sed '2w file' /etc/fstab
sed '1,2w file' /etc/fstab
s/pattern(可用正则表达式)/string/修饰符:查找并替换
默认替换每行中第一次被模式匹配到的字符串
分隔符可替换:s### s@@@
当分隔符与查找条件相同时可将其替换,避免使用转义符
修饰符:
g:全局替换
i:忽略字符大小写
原创文章,作者:Mr.Lee,如若转载,请注明出处:http://www.178linux.com/31701