sed命令应用

1.语法格式:

sed 参数 文件


常用参数:

-e或--expression=<script> 以指定的脚本来处理输入的文本文件

-f<script文件>或--file=<script文件> 以指定的脚本文件来处理输入的文本文件

-h或--help 显示帮助

-n或--quiet或--silent 仅显示script处理后的结果

-V或--version 显示版本信息

-i 直接修改读取的内容,而不是输出到终端 如要直接修改文件内容,需加上-i选项,sed -i

2.示例

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

[root@linuxcool ~]# cat -n anaconda-ks.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@linuxcool ~]# sed 's/root/ROOT/g' anaconda-ks.cfg

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

[root@linuxcool ~]# sed '/root/d' anaconda-ks.cfg

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

[root@linuxcool ~]# sed -e 4a\NewLine anaconda-ks.cfg

#version=RHEL8

ignoredisk --only-use=sda

autopart --type=lvm

# Partition clearing information

NewLine

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

[root@linuxcool ~]# cat anaconda-ks.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行的内容

[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

7.读取指定文件,替换第2-5行的内容

[root@linuxcool ~]# sed '2,5c NewSentence' anaconda-ks.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@linuxcool ~]# sed -n '3,7p' anaconda-ks.cfg

autopart --type=lvm

# Partition clearing information

clearpart --none --initlabel

# Use graphical install

graphical