Splitting command line args with GNU parallel

后端 未结 3 913
一个人的身影
一个人的身影 2021-02-02 06:37

Using GNU parallel: http://www.gnu.org/software/parallel/

I have a program that takes two arguments, e.g.

$ ./prog file1 file2
$ ./prog file         


        
相关标签:
3条回答
  • 2021-02-02 06:57

    In Parallel's manual, it is said:

    If no command is given, the line of input is executed ... GNU parallel can often be used as a substitute for xargs or cat | bash.

    So take a try of:

    generate command | parallel
    

    Try to understand the output of this:

    for i in {1..5};do echo "echo $i";done | parallel
    
    0 讨论(0)
  • 2021-02-02 07:16

    You are probably looking for --colsep.

    generate_file_pairs | parallel --colsep ' ' ./prog {1} {2}  
    

    Read man parallel for more. And watch the intro video if you have not already done so http://www.youtube.com/watch?v=OpaiGYxkSuQ

    0 讨论(0)
  • 2021-02-02 07:20

    You are looking for -n option of parallel. This is what you are looking for:

    ./generate_file_pairs | parallel -n 2 ./prog {}
    

    Excerpt from GNU Parallel Doc:

    -n max-args
        Use at most max-args arguments per command line. Fewer than max-args 
        arguments will be used if the size (see the -s option) is exceeded, 
        unless the -x option is given, in which case GNU parallel will exit.
    
    0 讨论(0)
提交回复
热议问题