Database JUNKY

MySQL,MariaDBを中心としたブログです

Linux 特定の文字を含む行を削除したい場合、sedを使おう!

bashの処理で、ある特定の文字列が含まれる行をまるっと削除したい時ってありますよね?よね? sedコマンドでこんなに簡単にできます。

f:id:hit10231023:20180308234003p:plain

こんなデータがあったとします

cat test.txt 
--------------------------------------
delete_keyword
123
delete_keyword
abc
delete_keyword
def
delete_keyword
ghijk
delete_keyword
lmn
delete_keyword

こうやって消します

sed '/delete_keyword/d'  test.txt > test2.txt                
cat test2.txt 
--------------------------------------------------------------
123
abc
def
ghijk
lmn

置き換えの場合は -i オプションを指定すると同名ファイルで置きかわります。

sed -i '/delete_keyword/d'  test.txt                 

意外と簡単だったでしょ?