基本语法 sed [OPTION]… {script-only-if-no-other-script} [input-file]… 默认自动打印
参数
作用
-n
不输出模式空间内容到屏幕,即不自动打印
[root@centos8 ~ ]#sed '' /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Sep 21 21:32:25 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=36500084-b1ee-4e0f-a6e5-a970a5338796 / xfs defaults 0 0
UUID=ef517225-47b5-4f1d-b807-0a43d39f77b0 /boot ext4 defaults 1 2
UUID=ae2e39f6-476d-406e-bbae-7806cfc52d05 /data xfs defaults 0 0
UUID=eac19fbe-3f3c-4f1f-804e-09458838db1c swap swap defaults 0 0
[root@centos8 ~ ]#sed 'p' /etc/fstab
#
#
# /etc/fstab
# /etc/fstab
# Created by anaconda on Mon Sep 21 21:32:25 2020
# Created by anaconda on Mon Sep 21 21:32:25 2020
#
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
# units generated from this file.
#
#
UUID=36500084-b1ee-4e0f-a6e5-a970a5338796 / xfs defaults 0 0
UUID=36500084-b1ee-4e0f-a6e5-a970a5338796 / xfs defaults 0 0
UUID=ef517225-47b5-4f1d-b807-0a43d39f77b0 /boot ext4 defaults 1 2
UUID=ef517225-47b5-4f1d-b807-0a43d39f77b0 /boot ext4 defaults 1 2
UUID=ae2e39f6-476d-406e-bbae-7806cfc52d05 /data xfs defaults 0 0
UUID=ae2e39f6-476d-406e-bbae-7806cfc52d05 /data xfs defaults 0 0
UUID=eac19fbe-3f3c-4f1f-804e-09458838db1c swap swap defaults 0 0
UUID=eac19fbe-3f3c-4f1f-804e-09458838db1c swap swap defaults 0 0
[root@centos8 ~ ]#sed -n 'p' /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Sep 21 21:32:25 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=36500084-b1ee-4e0f-a6e5-a970a5338796 / xfs defaults 0 0
UUID=ef517225-47b5-4f1d-b807-0a43d39f77b0 /boot ext4 defaults 1 2
UUID=ae2e39f6-476d-406e-bbae-7806cfc52d05 /data xfs defaults 0 0
UUID=eac19fbe-3f3c-4f1f-804e-09458838db1c swap swap defaults 0 0
参数
作用
-e 脚本命令
该选项会将其后跟的脚本命令添加到已有的命令中。
-f 脚本命令文件
该选项会将其后文件中的脚本命令添加到已有的命令中。
-r、-E
使用正则表达式
-i
此选项会直接修改源文件,要慎用。配合使用-i.bak,修改并备份源文件
sed脚本格式 ‘地址命令’
地址格式
效果
’ ’
不给地址,对全文进行处理
‘#p’
打印第#行的内容
‘#,#p’
打印从#行到#行的所有内容
‘#,+#p’
打印从#行到+#行的所有内容
‘#,$p’
打印从#行到行尾的所有内容
‘/part/p’
打印所有包含/匹配内容/的行内容
‘/part1/,/part2/p’
打印从/part1/到/part2/的所有行内容,匹配到几次,打印几次
‘#,/part/p’
打印从第#行到第一个/part/的所有行内容
1~2
打印奇数行
2~2
打印偶数行
演示:从上到下
[root@centos8 ~ ]#sed ' ' /etc/issue
\S
Kernel \r on an \m
[root@centos8 ~ ]#seq 10 | sed -n '1p'
1
[root@centos8 ~ ]#seq 10 | sed -n '2,4p'
2
3
4
[root@centos8 ~ ]#seq 10 | sed -n '2,+4p'
2
3
4
5
6
[root@centos8 ~ ]#seq 10 | sed -n '2,$p'
2
3
4
5
6
7
8
9
10
[root@centos8 ~ ]#sed -n '/home/p' /etc/passwd
guan:x:1000:1000:guan:/home/guan:/bin/bash
test:x:1001:1001::/home/test:/bin/bash
gentoo:x:1002:1003:Gentoo Distribution:/home/gentoo:/bin/csh
nginx:x:1003:1005::/home/nginx:/bin/bash
varnish:x:1004:1006::/home/varnish:/bin/bash
tomcat:x:1006:1008::/home/tomcat:/bin/bash
git:x:1007:1010::/home/git:/bin/bash
test2:x:1008:1011::/home/test2:/bin/bash
mageia:x:1100:1100::/home/linux:/bin/bash
slackware:x:2002:2019::/home/slackware:/bin/tcsh
wang:x:2003:2003::/home/wang:/bin/bash
li:x:2004:2004::/home/li:/bin/bash
[root@centos8 ~ ]#sed -n '2,/home/p' /etc/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
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
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin
sssd:x:996:993:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rngd:x:995:992:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
guan:x:1000:1000:guan:/home/guan:/bin/bash
[root@centos8 ~ ]#sed -n '/games/,/home/p' /etc/passwd
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin
sssd:x:996:993:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rngd:x:995:992:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
guan:x:1000:1000:guan:/home/guan:/bin/bash
[root@centos8 ~ ]#seq 10 | sed -n '2~2p'
2
4
6
8
10
[root@centos8 ~ ]#seq 10 | sed -n '1~2p'
1
3
5
7
9