パターンが一致するファイルを見つけるには、このgrepコマンドがあります。
grep -oiE 'pattern1|pattern2|pattern3|pattern4' *pattern_in_a_filename* | sort -u
出力:
file_one:pattern1
file_two:pattern2
file_two:pattern3
私が望むのは、pattern4
次の例のように見つからないステートメントを出力することです。
file_one:pattern1
file_two:pattern2
file_two:pattern3
pattern4 not found
私は何千ものパターンを作っていますが、これは私たちの仕事に必要な重要なデータなので、すぐに完了する必要があります。
ベストアンサー1
これをしなければならないクイックできるだけ
仕事を早く終わらせたいですか?
発見する並列処理次のGNUを適用してくださいparallel
解決策:
正しい方法は、すべてのパターンをファイル(たとえばpatterns.txt
。
主な仕事:
cat patterns.txt | parallel -j 0 --no-notice 'grep -Hoi {} /path/to/files/* || echo "{} not found"' | sort -u
-j N
- ポジション数。N
ジョブを並列に実行します。0
できるだけ意味を与えます。デフォルトは100%で、これはCPUコアごとに1つのタスクを意味します。
上記のコマンドはすべての項目を検索します。模様patterns.txt
すべてのファイルから並列。
テストしてみると2CPUコアには、いくつかのパターンのリストと、それぞれ641Mbのいくつかのcsvファイルが含まれています。私は薬を持っています。470%連続処理と比較して時間速度が向上する。
コンピュータにCPUコアが多いほど、より高速なパフォーマンスが得られます。
結論を出す...