【系列】每天一个 Linux 命令(17):sed 命令
发布作者:微思网络 发布时间:2025-12-03 浏览量:0次


sed 命令来自英文词组 stream editor 的缩写,其功能是利用语法/脚本对文本文件进行批量 的编辑操作。sed 命令最初由贝尔实验室开发,后被众多 Linux 系统集成,能够通过正则表达 式对文件进行批量编辑,让重复性的工作不再浪费时间。
1.命令格式:
sed 参数 文件名
2.命令参数:
-e 使用指定脚本处理输入的文本文件
-f 使用指定脚本文件处理输入的文本文件
-h 显示帮助信息
-i 直接修改文件内容,而不输出到终端
-n 仅显示脚本处理后的结果
-r 支持扩展正则表达式
-v 显示版本信息
3. 参考示例:
查找指定文件中带有某个关键词的行:
[root@linuxcoo1 ~]# cat -n file.cfg | sed -n '/root/p'
20 rootpw -- iscrypted $6$c2VGkv/8C3IEwtRt$iPEjNXm16v5KEmcM9okIT.Op9/LEpFejqR.
kmQWAVx7f1a3roq.3MMVKDahnv01/pONz2wMNecy17WJ8Ib0iO1
40 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
将指定文件中某个关键词替换成大写形式:
[root@1inuxcoo1 ~]# sed 's/root/ROOT/g'File.cfg
.......….…………省略输出信息.................
读取指定文件,删除所有带有某个关键词的行:
[root@linuxcoo1 ~]# sed '/root/d'File.cfg
...........…………省略输出信息.................
读取指定文件,删除所有带有某个关键词的行:
[root@linuxcool ~]# sed '/root/d' File.cfg
…........….…省略输出信息.....-----....
读取指定文件,在第4行后插入一行新内容:
[root@linuxcool ~]# sed -e 4a\NewLine File.cfg#version=RHEL8
ignoredisk --only-use=sda
autopart --type=1vm
# Partition clearing informationNewLine
.........……………….省略部分输出信息..................
读取指定文件,在第4行后插入多行新内容:
[root@linuxcool ~]# cat File.cfg | sed -e '4a NewLine1\
> NewLine2\
> NewLine3'#version=RHEL8
ignoredisk --only-use=sdaautopart --type=1vm# Partition clearing informationNewLine1NewLine2NewLine3
clearpart --none --initlabel# use graphical installgraphical
..........…….省略部分输出信息..............
读取指定文件,删除第2~5行的内容:
[root@linuxcool ~]# cat -n /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
………………省略部分输出信息................
读取指定文件,替换第 2~5 行的内容:
[root@linuxcool ~]# sed '2,5c NewSentence' File.cfg
#version=RHEL8
NewSentence
# Use graphical install
graphical
repo -- name="AppStream" --baseurl=file:///run/install/repo/AppStream
# Use CDROM installation media
cdrom
………………省略部分输出信息………………
读取指定文件的第 3~7 行:
[root@linuxcool ~]# sed -n '3,7p' File.cfg
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical
END
1微思网络,始于2002年
专业IT认证培训23年,面向全国招生!
点击查看更多【培训课程目录】


