sedでファイル内の行削除と対象行を事前確認


sedコマンドでファイルの内容を機械的に編集できます。
ただ、指定内容が間違っている恐れもあるため、ファイルの編集が想定通りに行われるかきちんと確認しないと危険です。

事前確認(Dry run)

sed -e "/消したい内容/d" ファイル名 | diff ファイル名 -

削除対象となった行をdiff形式で取得できます。
sed -i オプションをつけない限り、ファイルは直接編集されないので大丈夫です。(後述)

参照

書き換え実行

sed -e "/消したい内容/d" ファイル名 -i

事前確認コマンドの | 以降を削除して -i に置き換えたのみ。

参照

  • sed -i オプションについて
    • sedでファイルを上書き保存
    • -i オプションを指定することで、対象ファイルが上書きされる
    • つけない場合、標準出力への出力のみとなる(それで事前確認を実現できてる)

あとがき

sed -ised -i.bak にすることで、.bak 拡張子をつけたバックアップを取得できます。
diff バックアップ 現ファイル, less 現ファイル で最終確認する手順とすることでより安全に作業出来るので、やっていきましょう。(自戒)