sed - stream editor for filtering and transforming text
SYNOPSIS
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
DESCRIPTION
Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).
# sed -n '/net/'p passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
# sed -n '/NET/'p passwd
# sed -n '/NET/'pI passwd
sed:-e 表达式 #1,字符 7:命令后含有多余的字符
# sed -n '/NET/'Ip passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
-n, --quiet, --silent
suppress automatic printing of pattern space
# sed p passwd | wc
70
# sed p passwd -n | wc
35
# sed '/root/'
p passwd
-n
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
# sed '/r.t/'p passwd -n
operator:x:11:0:operator:/root:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
# sed '/r*t/'p passwd -n | head -3
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
-e script, --expression=script
add the script to the commands to be executed
# sed -e 1p -n -e 2p passwd
o
oo
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
# wc passwd
35 passwd
# sed -i '1,10'd passwd
# wc passwd
25 passwd
-r, --regexp-extended(egrep)
use extended regular expressions in the script.
# sed '/o\+t/'p passwd -n
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
# sed '/o+t/'p passwd -nr
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
# sed '/o{2}/'p passwd -nr
oo
ooo
oooo
# sed '/root|bus/'p passwd -nr
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
number
Match only the specified line number
(which increments cumulatively across files, unless the -s option is specified on the command line).
.
# sed 3p passwd -n
ooo
# sed '3,5'p passwd -n
ooo
oooo
oox
$ Match the last line
# sed '33,$'p passwd -n
user5:x:1007:1007::/home/user5:/bin/bash
user6:x:1008:1010::/home/user6:/bin/bash
user7:x:1009:1009::/home/user7:/bin/bash
# wc -l passwd
35 passwd
# sed '1,$'p passwd -n | wc -l
35
# sed -n ''p passwd | wc
35
# sed p passwd -n | wc -l
35
s/regexp/replacement/
Attempt to match regexp against the pattern space.
If successful, replace that portion matched with replacement.
The replacement may contain the special character & to refer to that portion of the
pattern space which matched,
and the special escapes \1 through \9 to refer to the corresponding matching
sub-expressions in the regexp.
# wc -l passwd
35 passwd
# sed s/net/NET/g passwd | wc
35
# sed s/net/NET/g passwd | grep -i net
systemd-NETwork:x:192:192:systemd Network Management:/:/sbin/nologin
# grep -i net passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
# sed s/net/NET/g passwd
-i
# grep -i net passwd
systemd-NETwork:x:192:192:systemd Network Management:/:/sbin/nologin
#
sed -r 's/([^:]+):(.*):(.*)/\3:\2:\1/g' passwd | head -5
/bin/bash:x:0:0:root:/root:root
/sbin/nologin:x:1:1:bin:/bin:bin
/sbin/NOLOGIN:x:2:2:daemon:/sbin:daemon
/sbin/nologin:x:3:4:adm:/var/adm:adm
/sbin/nologin:x:4:7:lp:/var/spool/lpd:lp
# sed -r 's/(.*)/aaa:&/g' passwd |head -5
aaa:root:x:0:0:root:/root:/bin/bash
aaa:bin:x:1:1:bin:/bin:/sbin/nologin
aaa:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
aaa:adm:x:3:4:adm:/var/adm:/sbin/nologin
aaa:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
# sed -r 's/^/aaa:/g' passwd |head -5
aaa:root:x:0:0:root:/root:/bin/bash
aaa:bin:x:1:1:bin:/bin:/sbin/nologin
aaa:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
aaa:adm:x:3:4:adm:/var/adm:/sbin/nologin
aaa:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
# sed 's/^.*$/123&/' passwd | head -5
123root:x:0:0:root:/root:/bin/bash
123bin:x:1:1:bin:/bin:/sbin/nologin
123daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
123adm:x:3:4:adm:/var/adm:/sbin/nologin
123lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
# sed 's/^/123/' passwd | head -5
123root:x:0:0:root:/root:/bin/bash
123bin:x:1:1:bin:/bin:/sbin/nologin
123daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
123adm:x:3:4:adm:/var/adm:/sbin/nologin
123lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
2939

被折叠的 条评论
为什么被折叠?



