sed--------基于行的。因此按照命令对每一行执行命令。
它不会修改任何读入的文件,会将其结果写到标准输入。
1、 head -n10 /etc/passwd >/tmp/passwd.bak
截取/etc/passwd的前十行,
2、[root@master tmp]# sed -e '5d' /tmp/passwd.bak
作用是把第五行删除掉了,如果是'd'的话,就是出来一行,删除掉一行。
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
3、sed工作的地址范围
[root@master tmp]# sed -e '1,5d' /tmp/passwd.bak
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
'1,5d'这个代表了1到5行的输出。
4、sed忽略文本中的注释
[root@master tmp]# sed -e '/^#/d' /etc/rc.local
剔除#所在的行
touch /var/lock/subsys/local
阅读(826) | 评论(0) | 转发(0) |