嗯,在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的。
[note]參考資料: Rickey’s pet sblog、鳥哥、[/note]