sedで特定の行だけを消す

ファイルがいくつかあって、特定の行を消すためにいちいちファイルを開いて消して保存して……というのは面倒で避けたいのでsedを使う事に。
でもsedは置換でしか使ったことがない!というわけで行の削除に関するメモ。

$ sed -i.bak -r -e '/^A/d' ./*.sh

ってやると、先頭行が"A"で始まる行が全部削除される!
-iでバックアップ用拡張子を指定しているので、元々のファイルは.bakが付いて保持されます。
-rは拡張正規表現を使用するオプション……だったはず。GNU版では。BSD版は-Eかなんかだったかな。


sedは他にも追記とか挿入もできるのでawkと合わせるとちょっとしたものもすぐ書けるのでとっても便利だと思う!
awk全然慣れてないけど。