sed基本使用
1. 删除由空格组成的空白行
sed '/^ *$/d' test.txt sed '/[ ][ ]/d' test.txt
2. 删除空白行
sed '/^[[:space:]]*$/d' test.txt
3. 删除空格开头的行
sed '/^ /d' test.txt
4. 删除制表符(tab)的空白行
sed '/\t/d' test.txt


5. 删除字母开头的行
sed '/^[a-Z]/d' test.txt
6. 删除以注释行
sed '/^#/d' test.txt
7. 删除指定行
sed '2d' test.txt
8. 删除多行
sed '1,3d' test.txt ---删除1到3行
sed '3,$d' test.txt ---删除第三行到最后一行
9. 打印
sed '2p' test.txt ---打印第2行
sed -n '2p' test.txt ---打印第2行,不显示文件内容
sed -n '2,5p' test.txt ---打印2-5行
10. 替换
sed 's/4/8/' test.txt ---4替换8,每行第一个4替换为8
sed 's/4/8/' test.txt ---将每行所有的4替换为8
sed '/asf21/s/e/8/' test.txt ---先查看asf21再讲e替换为8
sed -e '1d' -e 's/asf/21/g' test.txt ---多重编辑,先删除第一行,再替换asf为21
sed '/asf/c 123' test.txt ---查找asf的行全部覆盖为123
11. 插入
sed '/sad/a 123' test.txt ---在sad后面插入一行123
sed '/sad/i 123' test.txt ---在sad前面插入一行123
12. 退出
sed '8q' test.txt ---打印前8行后退出
13. 抓取ip地址
ifconfig ens33 | sed '/.*inet /!d;s///;s/ .*//'
.*inet: .表示任意字符,*任意多个前导字符
inet 192.168.163.130 netmask 255.255.255.0 broadcast 192.168.163.255
s///:前面//不适用配置规则,则使用上一步的匹配结果
后//匹配为空字符串删除
192.168.163.130 netmask 255.255.255.0 broadcast 192.168.163.255
s/ .*//:将1个空格和后面的任意字符串删除
192.168.163.130

浙公网安备 33010602011771号