首先,使用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`
注意,此命令會直接修改原文件。