标签:编辑 mes use file usr game 单引号 一个 字母
9.4/9.5 sedsed工具和awk工具就能把替换的文本输出到屏幕上,功能丰富。都是流式编辑器,是针对文档的行来操作的。
打印某行
sed命令格式为:sed -n 'n'p filename,单引号内的n是一个数字,表示第几行。-n选项的作用是只显示我们要打印的行。示例命令如下:
test11:x:1001:1002::/home/test11:/bin/bash [root@bogon ~]# sed -n '2'p /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin
[root@bogon ~]# sed -n '1,$'p /etc/passwd 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 lp:x:4:7:lp:/var/spool/lpd:/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 operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin
上例中为把所有行都打印出来,命令sed -n '1,$'p filename。
指定一个区域打印,如下所示:
[root@bogon ~]# sed -n '1,3'p /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
打印包含某个字符串的行
示例命令如下:
[root@bogon ~]# sed -n '/root/'p test.txt
sed使用特殊字符(如^、$,.*d等)
[root@bogon ~]# sed -n '/^1/'p test.txt 111111111111111111111111111111 [root@bogon ~]# sed -n '/in$/'p test.txt [root@bogon ~]# sed -n '/r..o/'p test.txt roooot:x0:0:/rooooot:/bin/bash [root@bogon ~]# sed -n '/ooo*/'p test.txt roooot:x0:0:/rooooot:/bin/bash
sed命令加上-e选项可以实现多个行为,如下所示:
[root@bogon ~]# sed -e '1'p -e '/111/'p -n test.txt 111111111111111111111111111111
删除某些行
示例命令如下:
[root@bogon ~]# sed -e '1'd test.txt roooot:x0:0:/rooooot:/bin/bash 111111111111111111111111111111 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [root@bogon ~]# sed -e '1,3'd test.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [root@bogon ~]# sed -e '/oot/'d test.txt 111111111111111111111111111111 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [root@bogon ~]#
这里参数d表示删除的动作,它不仅可以删除指定的单行以及多行,而且可以删除匹配某个字符的行,还可以删除从某一行开始到文档最后的一行的所有行。
替换字符或者字符串
示例命令如下:
[root@bogon ~]# sed 's#ot#to#g' test.txt roooto:x0:0:/rooooto:/bin/bash 111111111111111111111111111111
[root@bogon ~]# sed 's@ot@to@g' test.txt roooto:x0:0:/rooooto:/bin/bash 111111111111111111111111111111 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
删除文档中所有的数字或者字母?示例命令如下:
[root@bogon ~]# sed 's/[0-9]//g' test.txt roooot:x::/rooooot:/bin/bash aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
标签:编辑 mes use file usr game 单引号 一个 字母
原文地址:http://blog.51cto.com/13107353/2135964