1 日あたり約 50.000 個のテキスト ファイルをフォルダーに分類しています。たとえば、次のようになります。
/rootdir/20130831/ (containing 50000 files)
/rootdir/20130907/ (containing 50000 files)
/rootdir/20130908/ (containing 50000 files)
/rootdir/20130909/ (containing 50000 files)
ここで、find と grep を組み合わせた検索スクリプトを作成しました。検索コマンドは、ユーザーの入力に基づいて動的に作成されます。したがって、ユーザーが検索したい年しか知らない場合。検索は、すべての 2013 フォルダーに対して実行されます。
次に、ユーザーはいくつかの検索データも入力します。これは最大 3 つの検索文字列であり、次のような検索になります。
find /rootdir/2013*/ -type f | xargs grep -l searchstring1 | xargs grep -l searchstring2 | xargs grep -l searchstring3
もちろん、これには時間がかかります。検索ごとの時間を短縮できるかどうか疑問に思っていましたか? 時間がかからない方法はありますか?
* 編集 * find コマンドの結果を短縮するためにファイル名を使用できないことを忘れていました。