linux sed命令



sed本身也是一个管道命令,可以分析standard input。而且sed还可以将数据进行增加、删除、替代、撷取特定行等的功能。



①以行为单位的增加、删除功能

nl /etc/passwd | sed 2,5d         //sed -e 2,5d 一个意思;

PS: sed后面接的动作,必须以引号括住!!

nl /etc/passwd | sed 2d

nl /etc/passwd | sed 3,$d  //$代表最后一行

 

nl /etc/passwd | sed 2a drink tea  //drink tea 被加在第二行之后

nl /etc/passwd | sed 2i drink tea  //drink tea 被加在第二行之前

nl /etc/passwd | sed 2a drink tea or ...\

> drink beer?              //这样就增加了不止一行在第二行之后了

 

②以行为单位的取代、显示功能

nl /etc/passwd | sed 2,5c drink tea   //2-5行被取代为drink tea

nl /etc/passwd | sed -n 5,7p     //必须-n选项

ps:等价于 nl /etc/passwd | head -n 7 | tail -n 3

 

③部分数据的搜寻与取代功能

sed s/old/new/g

例子:

 ifconfig eth0 | grep inet addr

得到inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

ifconfig eth0 | grep inet addr | sed s/^.*inet addr://g

得到192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

ifconfig eth0 | grep inet addr | sed s/^.*inet addr://g | sed s/Bcast.*$//g

得到192.168.1.100

 

④直接修改文件内容(危险动作,不过非常有用)

sed可以直接修改文件的内容,而不必使用管道命令。

sed -i s/\.$/\!/g regular.txt    //-i 选项让sed直接去修改文件内容,而不是由屏幕输出

作用:把行的最后一个字符是.的替换为!

sed -i $a #this is a text regular.txt

作用:在最后一行后面加入【#this is a test


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值