1. 程式人生 > >Linux 之 sed 實例詳解

Linux 之 sed 實例詳解

sed

sed 實例詳解
文本內容:
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

1.sed 增加內容
-a         往文本或號後面增加內容
-i          往行號前增加內容

-a  實例:在Alex 前增加111,Kang,OOO
[root@localhost ~]# sed ‘1a 111,Kang,OOO‘ test.txt 
101,oldboy,CEO
111,Kang,OOO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

-i 實例:在Alex後增加兩行內容‘123,Kang,bbb   456,Ming,ccc’
[root@localhost ~]# sed ‘4i 123,kang,bbb\n456,ming,ccc‘ test.txt 
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
123,kang,bbb
456,ming,ccc
104,yy,CFO
105,feixue,CIO

2.sed 刪除行
-d     刪除指定行
[root@localhost ~]# sed ‘1d‘ test.txt        #刪除指定第一行
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

[root@localhost ~]# sed ‘1,3d‘ test.txt        #刪除一到3行
104,yy,CFO
105,feixue,CIO

[root@localhost ~]# sed ‘/yy/d‘ test.txt      #根據內容刪除行
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
105,feixue,CIO

3.sed 修改文本內容
s:        單獨使用,將每一行中行一處匹配的字符串進行替換 ==>sed 命令
g:        每一行進行全部替換,==>sed命令s的替換標誌之一,非sed命令
-i:       修改文件內容==>sed軟件的選項

簡單文本內容替換,把oldboy替換成kang
[root@localhost ~]# sed ‘s#oldboy#kang#g‘ test.txt 
101,kang,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

固定操作第5行,以免影響其它行的內容
[root@localhost ~]# sed ‘5s#feixue#kang#g‘ test.txt 
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,kang,CIO

Linux 之 sed 實例詳解