sedコマンドでファイルの内容を機械的に編集できます。
ただ、指定内容が間違っている恐れもあるため、ファイルの編集が想定通りに行われるかきちんと確認しないと危険です。
事前確認(Dry run)
sed -e "/消したい内容/d" ファイル名 | diff ファイル名 -
削除対象となった行をdiff形式で取得できます。
sed -i
オプションをつけない限り、ファイルは直接編集されないので大丈夫です。(後述)
参照
- sed 行削除について
- diff 引数の
-
について-
git, cd, su, cat, diff, vim...-(ハイフン)でできること@コマンドライン - Qiita
- 標準出力を比較対象とする場合、
-
が必要なようです。
(パイプで渡してるから不要だと思い少し悩んだ)
- 標準出力を比較対象とする場合、
-
git, cd, su, cat, diff, vim...-(ハイフン)でできること@コマンドライン - Qiita
書き換え実行
sed -e "/消したい内容/d" ファイル名 -i
事前確認コマンドの |
以降を削除して -i
に置き換えたのみ。
参照
-
sed -i
オプションについて- sedでファイルを上書き保存
-
-i
オプションを指定することで、対象ファイルが上書きされる - つけない場合、標準出力への出力のみとなる(それで事前確認を実現できてる)
あとがき
sed -i
を sed -i.bak
にすることで、.bak
拡張子をつけたバックアップを取得できます。
diff バックアップ 現ファイル
, less 現ファイル
で最終確認する手順とすることでより安全に作業出来るので、やっていきましょう。(自戒)