Linux三剑客之sed
Linux三剑客之sed
sed是Linux中,流媒体编辑器
类型:grep 过滤文本
sed 修改文件
awk 处理文本
1、sed的格式
sed 【参数】 '处理规则' 【操作对象】
参数:-e:允许多项编辑
-n:取消默认输出
-i :就地编辑
-r :支持拓展正则
-f :指定sed匹配规则脚本文件
1 sed -e '3d' -e '6d' 4.txt 2 3 123 4 123 5 123 6 123 7 124 8 123 9 123 10 124 11 789 12 13 123 14 123 15 123 16 124 17 123 18 124 19 789
2、定位
1.数字定位法
指定行号
1 sed '3d' 4.txt 2 修改第三列 3 4 sed'2,3d' 4.txt 5 修改第二第三列
2.正则定位法
指定正则定位
1 sed '/^g/d' 2.txt 2 修改以g开头列
3.数字和正则定位法
1 sed '3,/^g/d' 2.txt 2 修改数字3和抬头是g
4.正则正则定位法
1 sed '/^g/,/^j/d' 2.txt 2 修改以g开头和j开头的
3、sed的编辑模式
参数:d:删除
p:打印
a:在当前行后添加一行或多行
sed '2axxx' 文件名
c:用新文本修改(替换)当前行
sed '2cxxx' 文件名
i : 在当前行之前,插入文本(单独使用时)
sed '2ixxx' 文件名
r : 在文件中读内容
sed '2r r.txt' 文件名 读取带有r的字段
w : 将指定行写入文件
sed '2w w.txt' 2.txt
y : 将字符转换成另一个字符
sed '2y/fa/FA/' 2.txt
s : 将字符串转换成另一个字符串(每一行只替换一次)
sed 's/11/22/' 6.txt
g : 全部执行
sed 's/11/22/g' 6.txt
i : 忽略大小写(跟 s 模式一起使用时)
sed 's/F/f/ig' 文件名
&:代表前面匹配到的内容
sed 's/.*/# &/g' /etc/nginx/nginx.conf
小案例:
1 1、将nginx.conf中的注释行全部去掉 2 3 [root@localhost ~]# sed '/^ *#/d' /etc/nginx/nginx.conf 4 5 2、将nginx.conf中每一行之前增加注释 6 [root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf 7 8 3、要求一键修改本机的ip, 9 192.168.15.100 ---> 192.168.15.101 10 172.16.1.100 ---> 172.16.1.101 11 sed -i 's#.100#.101#g' /etc/sysconfig/network-scripts/ifcfg-eth[01] 12 13 4、将/etc/passwd中的root修改成ROOT 14 sed -i 's#root#ROOT#g' /etc/passwd