8

awkコマンドをシェルスクリプトとして使用してテキストファイルを処理しようとしてparallelいますが、各ジョブを別のファイルに出力することができませんでした

私が試してみると:

seq 10 | parallel awk \''{ if ( $5 > 0.4 ) print $2}'\' file{}.txt > file{}.out

、などfile{}.outの代わりにファイルに出力します。file1.outfile2.out

チュートリアルとマニュアルページでも、 を使用できることが示唆されています--filesが、次のように出力されstdoutます。

seq 10 | parallel awk \''{ if ( $5 > 0.4 ) print $2}'\' file{}.txt --files file{}.out
4

3 に答える 3

13

の外部で処理されていたため、リダイレクトを引用する必要があることがわかりましたparallel

seq 10 | parallel awk \''{...}'\' file{}.txt ">" file{}.out
于 2014-03-05T03:43:40.247 に答える
3

もう 1 つの方法は、並列コマンド全体を二重引用符で囲むことです。

seq 10 | parallel " awk command > file{}.out "

ただし、出力をファイルや stdout にリダイレクトすると便利な場合もあります。を使用してそれを実現できますtee。この場合、使用するコマンドは次のようになります。

seq 10 | parallel " awk command | tee file{}.out "

于 2015-08-03T20:52:44.853 に答える
-1

パイプをサポートしていないスクリプトを並列化していたため、ここでの解決策は有効ではなかったため、問題を解決する新しいスレッドをここで開きました。

ここに到着する他の人たちの助けになることを願っています。

于 2016-05-31T02:36:39.333 に答える