Search code examples
bashgnu-parallel

gnu parallel: output each job to a different file


I am trying to process so text files with awk using the parallel command as a shell script, but haven't been able to get it to output each job to a different file

If i try:

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

It outputs to the file file{}.out instead of file1.out, file2.out, etc.

The tutorial and man pages also suggest that I could use --files, but it just prints to stdout:

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

Solution

  • It turns out I needed to quote out the redirect, because it was being processed outside of parallel:

    seq 10 | parallel awk \''{...}'\' file{}.txt ">" file{}.out