数据删除与替换

数据的搜寻并删除

  • 删除/etc/passwd所有包含root的行,其他行输出

nl /etc/passwd | sed '/root/d'

第一行的匹配root已经删除了

数据的搜寻并替换

除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并取代。

sed 's/要被取代的字串/新的字串/g'

  • 例: 修改ip

conf auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.26.78.250 netmask 255.255.240.0 up route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.26.79.253 dev eth0

sed 's/address .*$/address 192.168.0.1/g' /etc/network/interfaces

将 IP 前面的部分予以删除

/etc/network/interfaces eth0 | grep 'address' | sed 's/^.*address//g'

将 IP 后面的部分予以删除

/etc/network/interfaces eth0 | grep 'address' | sed 's/^.*address//g' | sed 's/netmask.*$//g'

本质上匹配的是正则表达式 ˆ.*为向前匹配所有 .*$为向后匹配所有