sed と find で大量のファイルの中から特定の行を消す2019年08月09日 17時00分39秒

Perl で大量のファイルを一気に置換は結構やっていた。最近、行削除を頻繁に行うようになったので、またメモ。

まず、第一にファイルシステムを選ぶこと。NFS よりローカルディスク。ローカルディスクより tmpfs。

sed のファイルアクセスを減らすために、grep で対象ファイルを減らしている。

% for i in `grep -l -R SOMETHING * 2>/dev/null`; do sed -i.bye -e '/SOMETHING/d' $i; done
xargs でファイルを sed に渡してみたが、一部の環境では問題があったので、この形に落ち着いた。何だか、宛先の消えているシンボリックファイルもあるので、grep のエラーは /dev/null へ。