Linux sed命令用法详解

2024-08-25 10:09:19 28

sed命令源自英文词组“stream editor”的缩写,其功能是利用语法/脚本对文本文件进行批量的编辑操作。最初由贝尔实验室开发,后被众多Linux系统集成,能够通过正则表达式对文件进行批量编辑,从而使得重复性的工作不再浪费时间。本教程主要介绍sed命令的语法格式和使用示例。

一、语法格式

sed 参数 文件名

二、常用参数

1、-e:使用指定脚本处理输入的文本文件。

2、-n:仅显示脚本处理后的结果。

3、-f:使用指定脚本文件处理输入的文本文件。

4、-r:支持扩展正则表达式。

5、-h:显示帮助信息。

6、-V:显示版本信息。

7、-i:直接修改文件内容,而不输出到终端。

三、使用示例

1、查找指定文件中带有某个关键词的行:

[root@zzbaike ~]# cat -n File.cfg | sed -n '/root/p'
20 rootpw --iscrypted $6$c2VGkv/8C3IEwtRt$iPEjNXml6v5KEmcM9okIT.Op9/LEpFejqR. kmQWAVX7fla3roq.3MMVKDahnv0l/pONz2WMNecy17WJ8Ib0iO1
40 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty

2、将指定文件中某个关键词替换成大写形式:

[root@zzbaike ~]# sed 's/root/ROOT/g' File.cfg

3、读取指定文件,删除所有带有某个关键词的行:

[root@zzbaike ~]# sed '/root/d' File.cfg

4、读取指定文件,在第4行后插入一行新内容:

[root@zzbaike ~]# sed -e 4a\NewLine File.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
NewLine

5、读取指定文件,在第4行后插入多行新内容:

[root@zzbaike ~]# cat File.cfg | sed -e '4a NewLine1 \
> NewLine2 \
> NewLine3 '
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
NewLine1
NewLine2
NewLine3
clearpart --none --initlabel
# Use graphical install
graphical

6、读取指定文件,删除第2~5行的内容:

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

7、读取指定文件,替换第2~5行的内容:

[root@zzbaike ~]# 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

8、读取指定文件的第3~7行:

[root@zzbaike ~]# sed -n '3,7p' File.cfg
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical


文章下方广告位