一致するファイル名を取得するのに問題はありませんgrep
。ただし、検索中のファイル階層の項目を検索するのに時間がかかるため(コンピュータの2000ファイルに1.4GBのデータ)、SSDがあるため、それほど時間がかかりません。私はそれが何であるか知りたいです。だから私は何かをしたいです。言葉が多いファイルの処理中に grep が各ファイルを一覧表示する出力です。
これはどのように達成できますか?
MacでBSD grepを使用してください。
ベストアンサー1
grep
検索を開始する前に、別のプロセスを呼び出してファイル名を印刷する必要があります。もちろん、速度は遅くなるでしょうが、あなたの場合はgrep
ブートロード時間が短いので、現在の状況に比べて大きな問題はありません。
検索と実行を使用します。
find . -type f -exec sh -c 'printf "checking: %s\n" "$1"; grep pattern "$1"' sh {} \;
または、一括検索して実行してループ用のシェルを呼び出します。
find . -type f -exec sh -c 'for f do printf "checking: %s\n" "$f"; grep pattern "$f"; done' sh {} +
または、GNU 0で区切られたファイル引数でfindとxargsを使用します。
find . -type f -print0 | xargs -0 sh -c 'for f do printf "checking: %s\n" "$f"; grep pattern "$f"; done'
ところで、macOSを使用していることが確認されます。 grep、sed、awkなどのGNUソフトウェアのインストールを検討してください。