同grep一樣,sed命令的功能也非常強大,這裏我僅僅介紹常用的一個命令:
我們看這樣的一個文檔:在終端輸入:root@linux-VirtualBox:~# cat a.txt
111
333444
333
然後:root@linux-VirtualBox:~# sed "s/333/222/g" a.txt
111
222444
222
再查看:root@linux-VirtualBox:~#
cat a.txt
111
333444
333
居然沒修改;其實sed是非交互式的編輯器。它不會修改文件,除非使用shell重定向來保存結果。默認情況下,所有的輸出行都被打印到屏幕上。
想修改原文件,則需加入 參數 i
如:root@linux-VirtualBox:~#
sed -i "s/333/222/g" a.txt
root@linux-VirtualBox:~#
查看:root@linux-VirtualBox:~#
cat a.txt
111
222444
222
修改完成,其實後面也可以使用 通配符 * ,以及 -r 參數。
如:
sed -i "s/1111/2222/g" `grep "1111" * -rl` //注意中英文符號
-i 表示 inplace edit,就地修改文件
-r 表示搜索子目錄
-l 表示輸出匹配的文件名
這個命令比較危險,注意備份。修改當前目錄及其子目錄下所有子目錄下所有文件中的字符串“1111”爲“2222”。