LINUX学生会linux学习

linux基础sed篇

2017-06-24  本文已影响6人  数据革命

sed介绍

sed.png

sed选项详解

-n选项

[root@localhost app]# sed -n  'p' passwd
root:x:0:0:root:/root:/bin/bash
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
[root@localhost app]# sed   'p' passwd    
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

d选项

[root@localhost app]# cat -n passwd|sed '2d'
     1  root:x:0:0:root:/root:/bin/bash
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost app]# cat -n passwd|sed '1~2d'
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     8  halt:x:7:0:halt:/sbin:/sbin/halt
    10  operator:x:11:0:operator:/root:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    22  usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
    24  saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    26  rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    28  chrony:x:991:988::/var/lib/chrony:/sbin/nologin
    30  qemu:x:107:107:qemu user:/:/sbin/nologin

a选项

[root@localhost app]# cat -n passwd|sed '5aasdasdasdasdasdasdasdasd' 
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin  << 我追加的行
asdasdasdasdasdasdasdasd
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
[root@localhost app]# cat -n passwd|sed '5a\asdasdas\ndfdsdsd\nsdsdsdsd'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
asdasdas
dfdsdsd
sdsdsdsd
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

i选项

[root@localhost app]# cat -n passwd|sed '5i\asdasdas\ndfdsdsd\nsdsdsdsd'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
dfdsdsd
sdsdsdsd
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

c选项

[root@localhost app]# cat -n passwd|sed '5c\asdasdas'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost app]# cat -n passwd|sed '5,7c\asdasdas'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

w选项

[root@localhost app]# cat -n passwd|sed '11,21w /app/qqq'    
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
[root@localhost app]# cat /app/qqq 
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin

r选项

[root@localhost app]# cat -n passwd|sed '5r /etc/issue'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
\S
Kernel \r on an \m        <<<意思是把他读到第5行下面

     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost app]# cat -n passwd|sed '5,7r /etc/issue'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
\S
Kernel \r on an \m

     6  sync:x:5:0:sync:/sbin:/bin/sync
\S
Kernel \r on an \m

     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
\S
Kernel \r on an \m

     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

=号选项

[root@localhost app]# sed  '='  passwd     
1
root:x:0:0:root:/root:/bin/bash
2
bin:x:1:1:bin:/bin:/sbin/nologin
3
daemon:x:2:2:daemon:/sbin:/sbin/nologin
4
adm:x:3:4:adm:/var/adm:/sbin/nologin
5
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
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
9
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10
operator:x:11:0:operator:/root:/sbin/nologin
11

!选项

[root@localhost app]#  cat -n passwd |sed -n '10!p'
     1  root:x:0:0:root:/root:/bin/bash 
     2  bin:x:1:1:bin:/bin:/sbin/nologin  
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin

sed工具

s/// :查找替换,#

[root@localhost ~]# sed 's/root/ROOT/' qqq 
ROOT  root root root
ROOT 
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
[root@localhost ~]# sed '2~2s/root/ROOT/' qqq       
root  root root root
ROOT 
root
ROOT
root
ROOT
root
ROOT
root
ROOT
[root@localhost ~]# sed '2~2s@root@ROOT@' qqq   
root  root root root
ROOT 
root
ROOT
root
ROOT
root
ROOT
root
ROOT

p选项

[root@localhost ~]# sed '2~2s@root@ROOT@gp' qqq
root  root root root
ROOT 
ROOT   <<<把匹配成功的行在打印一遍
root
ROOT
ROOT
root
ROOT
ROOT
root
ROOT
ROOT
root
ROOT
ROOT

地址定界

[root@localhost app]# sed '2p' passwd   
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin   把第2行显示2次
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
[root@localhost app]# sed  -n /^r/p passwd 
root:x:0:0:root:/root:/bin/bash
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 

地址范围详解(1)

[root@localhost app]# sed  -n 3,6p passwd   
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
[root@localhost app]# sed  -n 3,10p passwd  
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
[root@localhost app]# cat -n /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     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
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost app]# sed  -n 3,+10p passwd          
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:99:99:Nobody:/:/sbin/nologin

地址范围详解(2)

[root@localhost app]# sed -n '/^h/,/^s/p' passwd 
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:99:99:Nobody:/:/sbin/nologin 
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin  <这是结尾

地址范围详解(3)

 [root@localhost app]# sed -n '3,/^s/p' passwd 
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

步进

[root@localhost app]# cat -n passwd|sed -n '1~2p' 
     1  root:x:0:0:root:/root:/bin/bash
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
    23  geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
    25  libstoragemgmt:x:992:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
    27  rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
    29  radvd:x:75:75:radvd user:/:/sbin/nologin
    31  ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@localhost app]# cat -n passwd|sed -n '2~2p'  
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     8  halt:x:7:0:halt:/sbin:/sbin/halt
    10  operator:x:11:0:operator:/root:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    22  usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
    24  saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    26  rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    28  chrony:x:991:988::/var/lib/chrony:/sbin/nologin
    30  qemu:x:107:107:qemu user:/:/sbin/nologin 
上一篇下一篇

猜你喜欢

热点阅读