AIX系統下sed的用法與例項——查詢/列印/替換字串並生成檔案/刪除
阿新 • • 發佈:2018-11-28
sed是AIX中非常重要的文字流編輯器,它對輸入的文字進行查詢/列印/替換/刪除等操作,並將結果寫到標準輸出。
sed 命令包含很多功能,用於選擇要修改的行,並只對選擇的行作更改。
sed “s/查詢欄位/替換欄位/g” `grep 查詢欄位 -rl 路徑`
首先,使用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.txt2)列印滿足正則表示式:出現以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)如果要批量替換路徑下所有檔案
例如:替換/home下所有檔案中的字串“hello”為“world”
sed “s/hello/world/g” `grep hello -rl /home`注意,此命令會直接修改原檔案。