1. 程式人生 > >AIX系統下sed的用法與例項——查詢/列印/替換字串並生成檔案/刪除

AIX系統下sed的用法與例項——查詢/列印/替換字串並生成檔案/刪除

sed是AIX中非常重要的文字流編輯器,它對輸入的文字進行查詢/列印/替換/刪除等操作,並將結果寫到標準輸出。 sed 命令包含很多功能,用於選擇要修改的行,並只對選擇的行作更改。

首先,使用sed命令請記住:sed命令以行為單位對文字進行處理,處理完當前行,接著下一行文字輸入進行處理,依次迴圈。

其次,使用sed命令請記住:sed命令不會對原檔案進行操作,它是對原檔案的拷貝檔案進行操作。

列印指定行

1)列印首行

sed -n ‘1p’  test.txt

##如果想把結果輸出到檔案,則這樣:sed -n ‘1p’  test.txt  > result.txt,以下同理。

2)列印最後一行

sed -n ‘$p’  test.txt        #$代表最後一行

3)列印第一行到第五行

sed -n ‘1,5p’  test.txt

列印滿足條件的篩選行

1)列印存在“hello”這個單詞的行

sed -n ‘/hello/p’ test.txt

2)列印滿足正則表示式:出現以ing結尾單詞的行

sed -n ‘/.*ing/p’  test.txt

替換字串並重新生成檔案

1)將文字中存在的單詞“hello”替換成“world”

sed  ‘s/hello/world/g’ test.txt

##注意,aix系統中sed命令不支援-i引數,直接使用上面的命令就可以進行替換,如果要輸出生成新檔案,則sed  ‘s/hello/world/g’ test.txt  > newfile.txt就可以了。
如果不想用sed命令,其他命令也是可以實現的,比如:perl  -p -i -e  “s/hello/world/g”  test.txt,同樣也可以實現字串的替換,不過perl命令會直接修改原檔案,請謹記。
2)如果要批量替換路徑下所有檔案

sed “s/查詢欄位/替換欄位/g” `grep 查詢欄位 -rl 路徑`

例如:替換/home下所有檔案中的字串“hello”為“world”

sed  “s/hello/world/g”  `grep hello -rl /home`

注意,此命令會直接修改原檔案。