Linux-shell篇之sed用法

sed基本用法:
sed:Stream EDitor
行编辑器(全屏编辑器:vi)

sed:模式空间
默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕

sed [option] ‘AddressCommand’ file …
-n:静默模式,不再默认显示模式空间中的内容
sed -n ‘/^//p’ /etc/fstab,只显示符合条件的行
-i:直接修改原文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f:/PATH/TO/SED_SCRIPT
sed -f /path/scripts file
-r:表示使用扩展正则表达式

Address:
1、StartLine,EndLine
比如1,100
2、/RegExp/
比如/^root/,匹配root开头
3、/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
4、LineNumber
指定的行
5、StartLine,+N
从startLine开始,向后的N行

Command:
d:删除符合条件的行
sed ‘1,2d’ /etc/fstab,删除fstab文本内容第一行和第二行
sed ‘3,$d’ /etc/fstab,删除fstab文本内容第三行到最后一行
sed ‘/oot/d’ /etc/fstab,删除fstab文本内容中包含oot的行
sed ‘1,+2d’ /etc/fstab,删除fstab文本内容第一行和后面两行

p:显示符合条件的行
sed ‘/^//p’ /etc/fstab,符合条件的显示,模式空间中的全部显示,所以相当于符合条件行显示两次,不符合条件的显示一次

a \string:在指定的行后面追加新行,内容为string
\n:可以用于换行
sed ‘/^//a # hello world’ /etc/fstab,在符合条件的行

猜你喜欢

转载自blog.csdn.net/yaoyujie157/article/details/103906173