数百のログ ファイルから 200 までのファイル名を効率的に検索したいと考えています。
grep
の-f
ディレクティブを使用して針をファイルに入れることで、これを簡単に行うことができます。
ただし、いくつかの問題があります。
- grepを効率的に使用する方法のように、これを効率的に行うことに興味があります。
- すべてのログ ファイルの各検索語 (ファイル名など)のすべての一致を個別に知りたいです。
grep -f
各ファイルで針を見つけると一致します。 - ファイル名がどこにも一致しない場合を知りたいです。
2.7 i7 MBP、16 GB の RAM 搭載
を使用するgrep -ron -f needle *
と、次のことがわかります。
access_log-2013-01-01:88298:google
access_log-2013-01-01:88304:google
access_log-2013-01-01:88320:test
access_log-2013-01-01:88336:google
access_log-2013-01-02:396244:test
access_log-2013-01-02:396256:google
access_log-2013-01-02:396262:google
含まれる場所needle
:
google
test
ここでの問題は、一致するものがないかディレクトリ全体が検索されneedle
、プロセスがシングルスレッドであるため、永遠にかかることです。また、一致が見つからないかどうかについての明確な情報もありません。