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 へ。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2019/08/09/9139206/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。