天天看點

sed指令的應用例子(二)

在文本中以上下行插入内容的參數:

a\ 為下方插入内容

i\ 為上方插入内容

c\ 為新内容把關鍵字的行替換(少用)

一般a\和i\比較常用

a\的效果,插入在leon關鍵字下方

i\的效果,插入在leon關鍵字的上方

删除文本

Sed ‘1d’test 删除第1行,列印顯示其他内容

删除了第一行

删除2-4行

删除最後一行

sed’10,$d’ abc 删除10行到最後一行

删除關鍵字為bbbbb的行

替換指令

格式:sed‘s/源關鍵字/替換關鍵字/’檔案名

這裡隻是替換出關鍵字的字元,并不會以行來替換,如sed‘s/abc/bb/’ a.txt 這裡abc的行其他内容不受影響

若:sed–n ‘s/源關鍵字/新關鍵字/p檔案名――〉隻列印出替換那行的結果

sed –n‘s/abc/ccc/pg’ test 這裡的g是代表全文本中的abc關鍵字都替換為ccc,如果不加上g,隻比對每行的第一個abc

這就是有g和沒加上g的效果

指定替換第n次的比對,如一個檔案中有5個leon的行,指的也可以是全文,現隻需要替換第3個leon為win

這樣有多少個leon的行中,第3個leon就更改為win了

&的用法

sed‘s/leon/&aa/’ abc &是代表前面的leon的字元,結果會更改為leonaa,這樣的好處,例如要修改123456789為123456789ab,這樣源關鍵字太長,直接用&來代替

注意,如果在最後的/後面加上g,則代表全文所有leon都會更改為leonaa

這裡的&=leon

w指令為輸入定向檔案,但由于有重定向符号〉,是以w指令很少用

格式:sed –n ‘s/leon/win/w test1’ /etc/passwd

r指令,讀取檔案,把一個檔案的内容讀取到另一個檔案的關鍵字的下一行

把abc檔案裡leon關鍵字的行讀到test檔案中

也可以:

q是比對退出指令,當指定比對到成功就馬上退出,不再比對下一個關鍵字

隻比對第一個關鍵字的行,就馬上退出不再比對下一行的leon

y也是替換指令,跟s差不多,但需要對等長度,就是源關鍵字是多少長度,新關鍵字也需要多少長度

sed‘y/aaaaa/11111/’ abc 源和新的關鍵長度必須要一樣,y指令很少用上

{ }相當于-e,屬于多指令編輯

兩個指令是對等效果的,但{}使用沒;指令的靈活

用;編輯多指令,相當于-e差不多

可以看到用;比書寫{}簡潔,而且更靈活

也可以分開列印且同時替換

既能顯示1-2行内容,又能列印出替換的結果

sed的内容就到這裡