perl スクリプトの使用を並列化しようとしています。perl スクリプトの入力引数と出力引数は、ディレクトリからファイル名を取得します。これは、gnu parallel を使用すると簡単です。
ls dir | parallel script.pl --input {} --output {.}.out
ただし、スクリプトの追加の引数では、各ファイルから最初の行と最後の行、2 番目の列の値を取得する必要があります...
ls dir | parallel script.pl --input {} --output {.}.out --otherargs range:{1}-{2}
ここで、{1} と {2} は、これらの値を取得するために awk または sed を以前/同時に使用した結果です。たとえば、
awk 'NR==1 {print $2}; END {print $2}'
しかし、この awk のようなステップを「ワークフロー」のどこに配置すれば (どのように配置すればよいでしょうか)、perl スクリプトがそれを使用できるようになりますか?
見つめている
xargs (または GNU Parallel) の引数のテキストを変更します。
正しいアプローチは単にこれを行うことですか?
ls | parallel script.pl --input {} --output {.}.out --otherargs range:{1}-{2} :::: <(awk 'NR==1 {print $2}) <(awk 'END {print $2})
ありがとうございました。