[root@cham2 sed]# sed -n '/root/'p test.txtroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[root@cham2 sed]# sed -nr '/r+o/'p test.txtroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin[root@cham2 sed]# sed -nr '/o*t/'p test.txtroot:x:0:0:root:/root:/bin/bashshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halo1t:/sbin:/sbin/haltoperator:x:11:0:operator:/root:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
忽略大小写(I)
[root@cham2 sed]# sed -n '/nologin/'Ip test.txtbin:x:1:1:bin:/bin:/sbin/NOLOGINdaemon:x:2:2:daemon:/sbin:/sbin/nologinad11om:x:3:4:ad1om:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spoool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin
打印指定行(p)
[root@cham2 sed]# sed -n '2'p test.txtbin:x:1:1:bin:/bin:/sbin/NOLOGIN[root@cham2 sed]# sed -n '2,5'p test.txtbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345222222:r.o:dfdsfdsgdaemon:x:2:2:daemon:/sbin:/sbin/nologin[root@cham2 sed]# sed -n '15,$'p test.txtnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin
-e选项允许在同一行里执行多条命令(把第一行打印出来并匹配bus)
[root@cham2 sed]# sed -e '1'p -e '/bus/'p -n test.txtroot:x:0:0:root:/root:/bin/bashsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologin[root@cham2 sed]# sed -e '1'p -e '/root/'p -n test.txtroot:x:0:0:root:/root:/bin/bashroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin
[root@cham2 sed]# sed '1,10'd test.txtmail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin[root@cham2 sed]# sed '1,18'd test.txtpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin
[root@cham2 sed]# sed '1,10s/root/toor/g' test.txttoor:x:0:0:toor:/toor:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345222222:r.o:dfdsfdsgdaemon:x:2:2:daemon:/sbin:/sbin/nologinad11om:x:3:4:ad1om:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spoool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halo1t:/sbin:/sbin/haltmail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin此处如果不使用head命令,将会显示test.txt全部内容。[root@cham2 sed]# sed '1,10s/root/toor/g' test.txt | head -3toor:x:0:0:toor:/toor:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345[root@cham2 sed]# cat test.txt | head -3root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345
替换每行第一个字符串和最后一个字符串的位置:
[root@cham2 sed]# head -3 test.txtroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345[root@cham2 sed]# head -3 test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'/bin/bash:x:0:0:root:/root:root/sbin/NOLOGIN:x:1:1:bin:/bin:bin325345345:1241124:jksdfhdskjf:sfdsf:rao:dfsdfdsfsdfs
说明: 小括号内的字符串可以用反斜杠跟数字组合按顺序来代替。
在每一行行首添加指定字符:
[root@cham2 sed]# head -3 test.txt | sed -r 's/(.*)/AB:\1/'AB:root:x:0:0:root:/root:/bin/bashAB:bin:x:1:1:bin:/bin:/sbin/NOLOGINAB:dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345[root@cham2 sed]# head -3 test.txt | sed -r 's/(.*)/AB:&/'AB:root:x:0:0:root:/root:/bin/bashAB:bin:x:1:1:bin:/bin:/sbin/NOLOGINAB:dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345