sed命令
批量编辑文本文件
语法格式:sed 参数 文件名
常用参数
-e | 使用指定脚本处理输入的文本文件 | -n | 仅显示脚本处理后的结果 |
---|---|---|---|
-f | 使用指定脚本文件处理输入的文本文件 | -r | 支持扩展正则表达式 |
-h | 显示帮助信息 | -V | 显示版本信息 |
-i | 直接修改文件内容,而不输出到终端 |
参考示例
查找指定文件中带有某个关键词的行
[root@liuwei ~]# cat -n /etc/passwd | sed -n '/root/p'
1 root:x:0:0:root:/root:/bin/bash
10 operator:x:11:0:operator:/root:/sbin/nologin
将指定文件中某个关键词替换成大写形式
[root@liuwei ~]# sed 's/root/ROOT/g' passwd
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
读取指定文件,删除所有带有某个关键词的行
[root@liuwei ~]# sed '/root/d' passwd
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
读取指定文件,在第4行后插入一行新内容
[root@liuwei ~]# sed -e 4a\NewLine 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
NewLine
读取指定文件,在第4行后插入多行新内容
[root@liuwei ~]# sed -e '4a NewLine1 \nNewLine2 \nNewLine3' 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
NewLine1
NewLine2
NewLine3
读取指定文件,删除第2-5行的内容
[root@liuwei ~]# sed '2,5d' passwd
root:x:0:0:root:/root:/bin/bash
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
读取指定文件,替换第2-5行的内容
[root@liuwei ~]# sed '2,5c NewSentence' passwd
root:x:0:0:root:/root:/bin/bash
NewSentence
读取指定文件的第3-7行
[root@liuwei ~]# sed -n '3,7p' passwd
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
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!