八、Linux三剑客之sed
处理文本文件的命令
参数说明
- -e<script>或--expression=<script> 以选项中指定的脚本来处理输入的文本文件。
- -f<script文件>或--file=<script文件> 以选项中指定的脚本文件来处理输入的文本文件。
- -h或--help 显示帮助。
- -n或--quiet或--silent 仅显示脚本处理后的结果。
- -V或--version 显示版本信息。
动作说明
- a :新增, a 的后面可以接字符串,而这些字串会在新的一行出现(目前的下一行)
- c :取代, c 的后面可以接字符串,这些字串可以取代 n1,n2 之间的行!
- d :删除,d 后面通常不接任何字符串;
- i :插入, i 的后面可以接字符串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,将某个选择的数据印出。通常 p 会与参数 sed -n 一起使用
- s :取代,搭配正规使用,例如 1,20s/old/new/g
案例
在testfile文件的第四行后添加一行,-e参数可省略
[root@tz shell]# sed -e 4a\newLine testfile HELLO LINUX! Linux is a free unix-type opterating system. This is a linux testfile! Linux test newLine
删除2~5行
[root@tz shell]# nl /etc/passwd |sed '2,5d' 1 root:x:0:0:root:/root:/bin/bash 6 sync:x:5:0:sync:/sbin:/bin/sync 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8 halt:x:7:0:halt:/sbin:/sbin/halt 9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
删除第二行
[root@tz shell]# nl /etc/passwd | sed '2d'
删除第3行到最后一行
[root@tz shell]# nl /etc/passwd |sed '3,$d' 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin
第2行后插入drink tea
[root@tz shell]# nl /etc/passwd | sed '2a drink tea' 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin drink tea 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
第2行前插入drink tea
[root@tz shell]# nl /etc/passwd |sed '2i drink tea' 1 root:x:0:0:root:/root:/bin/bash drink tea 2 bin:x:1:1:bin:/bin:/sbin/nologin
第2行增加两行
[root@tz shell]# nl /etc/passwd | sed '2a Drink tea or .....\ > drink beer ?' 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin Drink tea or ..... drink beer ? 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
学习来自菜鸟教程
今天的学习是为了以后的工作更加的轻松!