sed 可以直接修改檔案的內容

直接修改檔案內容(危險動作)你以為 sed 只有這樣的能耐嗎?那可不! sed 可以直接修改檔案的內容呢!而不必使用管線命令或資料流重導向! 不過,由於這個動作會直接修改到原始的檔案,所以請你千萬不要隨便拿系統設定檔來測試喔! 我們還是使用你下載的 regular_express.txt 檔案來測試看看吧!
範例六:
利用 sed 將 regular_express.txt 內每一行結尾若為 . 則換成 ! [root@www ~]# sed -i 's/\.$/\!/g' regular_express.txt # 上頭的 -i 選項可以讓你的 sed 直接去修改後面接的檔案內容而不是由螢幕輸出喔!
# 這個範例是用在取代!請您自行 cat 該檔案去查閱結果囉!

範例七:
利用 sed 直接在 regular_express.txt 最後一行加入『# This is a test』 [root@www ~]# sed -i '$a # This is a test' regular_express.txt # 由於 $ 代表的是最後一行,而 a 的動作是新增,因此該檔案最後新增囉!

sed 的『 -i 』選項可以直接修改檔案內容,這功能非常有幫助!舉例來說,如果你有一個 100 萬行的檔案,你要在第 100 行加某些文字,此時使用 vim 可能會瘋掉!因為檔案太大了!那怎辦?就利用 sed 啊!透過 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修訂!很棒吧!


總之,這個 sed 不錯用啦!而且很多的 shell script 都會使用到這個指令的功能~ sed 可以幫助系統管理員管理好日常的工作喔!要仔細的學習呢!

沒有留言:

張貼留言