sed 的幾個應用

 

sed全名是 stram editor,官方的網址是:

https://www.gnu.org/software/sed/manual/sed.html

之前有寫過一個 -i 的參數,標準的 sed 是不會修改原始檔案,這是個買保險的作法,但是,有時候就是需要直接修改原始檔案,就可以加上 -i  的參數,直接修改原始檔案。

以下是幾個 sed 的 Use case,先準備一個測試用的檔案【由於 -i 參數會直接修改原始檔案,所以,以下的案例,都是先備份到 /tmp/data.file,再copy還原到 /root/data.file】

northwest       NW      Joel Craig      3.0 .98 3       4
western         WE      Sharon  Kelly   5.3 .97 5       23


southwest       SW      Chris Foster    2.7 .8  2       18
southern        SO      May Chin        5.1 .95 4       15
southeast       SE      Derek Johnson   5.0 .70 4       17

eastern         EA      Susan Beal      4.4 .8  5       20
northeast       NE      TJ Nichols      5.1 .94 3       13
north           NO      Val Shultz      4.5 .89 5       9
central         CT      Sheri Watson    5.7 .94 5       13

image

sed '/^$/d' data.file

sed '/./!d' data.file

^是正規表示式的行首,$是正規表示式的行尾,行首行尾之間沒東西,那就是空白行,梅加上 -i 參數,則不修改原始檔案,只會輸出的 STDOUT

image

sed -i '/north/d' data.file

-i 會直接修改原始檔案,刪除檔案中,有出現north關鍵字的一整行,並直接寫回原始檔案

image

 

其他相關 sed 用法,可以參考:

https://www.opencli.com/linux/sed-delete-file-whole-line

本篇發表於 CentOS 6, CentOS 7, Linux, RHEL 6, RHEL 7, ubuntu。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s