next up previous contents
Next: sed 範例二 Up: sed 工具 Previous: sed 命令簡介   Contents

sed 範例一

  1. cat -n 顯示行號列出 /etc/passwd 的內容,管線命令給 head 取前 10 行,再管線處理以 sed 刪除第 2 5 行。
    [dywang@dywmac ~]$ cat -n /etc/passwd | head | 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
         9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10	uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    
  2. cat -n 顯示行號列出 /etc/passwd 的內容,管線命令給 head 取前 5 行,再管線處理以 sed 刪除第 3 行。
    [dywang@dywmac ~]$ cat -n /etc/passwd | head -5 | sed '3d'
         1	root:x:0:0:root:/root:/bin/bash
         2	bin:x:1:1:bin:/bin:/sbin/nologin
         4	adm:x:3:4:adm:/var/adm:/sbin/nologin
         5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    
  3. cat -n 顯示行號列出 /etc/passwd 的內容,管線命令給 tail 取最後 10 行,再管線處理以 sed 刪除第 5 至最後一行。
    [dywang@dywmac ~]$ cat -n /etc/passwd | tail | sed '5,$d'
        43	hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
        44	openvpn:x:495:491:OpenVPN:/etc/openvpn:/sbin/nologin
        45	toranon:x:494:490:Tor anonymizing user:/var/lib/tor:/sbin/nologin
        46	mockbuild:x:502:502::/home/mockbuild:/sbin/nologin
    
  4. 在第二行後面加入兩行字,例如『Drink tea or .....』『drink beer?』。可以新增好幾行,但每一行之間都必須要以反斜線 "\" 跳脫 Enter 進行新行的增加。
    [dywang@dywmac ~]$ cat -n /etc/passwd | head -5 | sed '2a Drink tea or .....\
    > drink beer?'
         1	root:x:0:0:root:/root:/bin/bash
         2	bin:x:1:1:bin:/bin:/sbin/nologin
    Drink tea or .....
    drink beer?
         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
    
  5. 將第 2-5 行的內容取代成為『No 2-5 rows』?
    [dywang@dywmac ~]$ cat -n /etc/passwd | head -6 | sed '2,5c No 2-5 rows'
         1	root:x:0:0:root:/root:/bin/bash
    No 2-5 rows
         6	sync:x:5:0:sync:/sbin:/bin/sync
    
  6. 僅列出第 4-6 行,sed 沒有加 -n 參數時 sed '4,6p',4-6 行會重複輸出。
    [dywang@dywmac ~]$ cat -n /etc/passwd | head | sed -n '4,6p'
         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
    



De-Yu Wang 2019-08-12