搜尋、刪除整行資料

嗯,在linux底下,要搜尋某一字串,並刪除整行資料有兩個做法

1 使用 sed 工具

指令格式 sed -in ‘/要搜尋的字串/d’ 檔案名稱
注意, sed 不同的版本,參數也不同,有的版本不要加 -n

例:
sed -in ‘/VERBOSE\[15687\]/d’ messages.log

指令說明: 刪除 VERBOSE[15687] 有這樣字串的那一整行資料, messages.log 是檔案名稱
由於搜尋是正規表示法,所以需要規避特殊符號所以在 [] 的前面都加了 \

補充說明:若是已確定你要編輯的資料是在第幾行的話,你可使用底下指令

刪除檔內第 10 行資料 , 則指令為 10d。
刪除含有 “man” 字串的資料行時 , 則指令為 /man/d。
刪除檔內第 10 行到第 200 行資料, 則指令為 10,200d。
刪除檔內第 10 行到含 “man” 字串的資料行 , 則指令為 10,/man/d。

含有 “Dial” 字串資料的那一行開始,後面的資料全刪除
sed ‘/Dial/,$d’ 檔案

$ 在 sed 裡代表著最後一行

從某一行,刪到最後一行
sed ‘6,$d’ 檔名

搜尋FALSE取代成TRUE
sed ‘s/FALSE/TRUE/g’

2 使用 vim 工具

指令 :g/你要搜尋的字串/d

指令說明: 開頭的g是表所有的意思,尾巴的d則是刪除,中間被/包圍的則是要搜尋的字這是允許regex的。

參考資料: Rickey’s pet sblog鳥哥

本篇發表於 bash。將永久鏈結加入書籤。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *