如何在bash单行中传递两个参数?

时间:2016-11-18 02:49:53

标签: bash shell xargs

假设我有一个需要两个参数的命令,例如

bismark -1 R1_1.fastq -2 R1_2.fastq

实际上,R1_1.fastq和R1_2.fastq可以通过

获得
ls *fastq | paste - - 

或者可以用

获得
echo samplelist.txt

我的问题是如何将这两个命令合并为一行?

ls *fastq | paste - - | xargs -n 2 | bismark -1 {} -2 {}

感谢。

3 个答案:

答案 0 :(得分:2)

while read f g
do
  bismark -1 "$f" -2 "$g"
done < samplelist.txt

或者:

xargs -n2 sh -c 'bismark -1 "$1" -2 "$2"' . < samplelist.txt

答案 1 :(得分:1)

使用数组,这很简单:

map:{
'videogular2': 'node_modules/videogular2',
},
packages:{
'videogular2':{
                main: 'core.js',
                defaultExtension:'js'
            }
}

答案 2 :(得分:1)

使用GNU Parallel,您可以:

ls *fastq | parallel -N2 bismark -1 {1} -2 {2}