shell-sed流编辑器

选项含义:
-n  静默输出,屏蔽自动打印。
-i  直接修改源文件
-r  在脚本指令中使用扩展正则表达式
-e  允许多个脚本指令被执行
-f  执行脚本
a,append        追加
i,insert        插入
d,delete        删除
s,substitution  替换
p,printf         打印

如:$ sed “2a xxxx” ./testfile 在输出testfile内容的第二行后添加"xxxx"。

[root@localhost ~]# sed "a xxxx" ./sed_test.txt 
111
xxxx
222
xxxx
[root@localhost ~]# sed "1a xxxx" ./sed_test.txt 
111
xxxx
222
[root@localhost ~]# sed "2a xxxx" ./sed_test.txt 
111
222
xxxx
#执行多个指令时
[root@andrew Andrew]# sed 's/yes/no/;s/static/dhcp/' test.txt 
DEVICE=eno16777736
BOOTPROTO=dhcp
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
#删除多行
[root@localhost ~]# cat sed_test.txt 
111
xxxx
222
[root@localhost ~]# sed -i "2,3d" sed_test.txt 
[root@localhost ~]# cat sed_test.txt 
111
常用的sed命令
/pattern/p 打印匹配pattern的行
/pattern/d 删除匹配pattern的行
/pattern/s/pattern1/pattern2/ 查找符合pattern的行,将该行第一个匹配pattern1的字符串替换为pattern2
/pattern/s/pattern1/pattern2/g 查找符合pattern的行,将该行所有匹配pattern1的字符串替换为pattern2

shell-sed流编辑器_第1张图片

你可能感兴趣的:(Shell)