dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

あるディレクトリ以下の全てのファイルから特定の文字列を含む行を削除したい

export LANG=C
find . -type f -print0 | xargs -0 sed -i -e "/needless-string/d"

最初のexport LANG=C

RE error: illegal byte sequence

というエラーを吐かれないようにするための対策

macの場合はsedgsedに変えて実行する。GNU版とBSD版の動作の違いが原因でファイルが上書きされずに変なファイルが作られる。