GNU Parallel は bash を使用して Unix で複数のファイルを並列に処理します。

GNU Parallel は bash を使用して Unix で複数のファイルを並列に処理します。

ファイルのリストを繰り返して正規表現の一致を検索するbashスクリプトがあります。以下は現在のコードの一部です。

for file in $Files_To_Parse; do (cat $file) | grep -ioE "($Keys$Delimiters$Payload+$End_String)" | grep -v 'null' | grep -v '*' done

  • $ Files_To_Parseは、スペースで区切られたファイル名文字列です。

  • $Keys、$Delimiters、$Payload$、および End_String は正規表現パターンです。

コードは現在(ゆっくり)動作します。

複数のファイルを並列に処理したり、1つのファイルから正規表現一致を並列に検索したいのですが、GNUのParallelパッケージを使用してこれを行う方法がわかりません。

関心をお寄せいただきありがとうございます。

ベストアンサー1

ディスク I/O により、以下が制限されることがあります。

doit() {
    (cat "$1") | grep -ioE "($Keys$Delimiters$Payload+$End_String)" | grep -v 'null' | grep -v '*'
}
export -f doit
parallel doit ::: $Files_To_Parse

このチュートリアルを段階的に進めてください。あなたのコマンドラインがあなたを愛するでしょう:

man parallel_tutorial

おすすめ記事