如何在命令行中传递多个输入?

问题描述

我正在尝试执行合并染色体数据的命令。由于我需要合并1..22号染色体以及X和Y的数据,因此我想看看是否有更好的方法可以做到这一点。我可以在下面提供myfile.list来合并染色体数据。

plink1.9 --bfile --merge-list myfile.list --make-bed --out mymerged

myfile.list是一个文本文件,其中包含:

data.chr1.b
data.chr2.b
...
... 
data.chr22.b
data.chrX.b
data.chrY.b

我没有提供文本文件myfile.list,而是希望在此命令中使用具有所有数据名称的变量。什么是更好的方法呢?像这样吗?

plink1.9 --bfile --merge-list cat `echo "data.chr"{1..22}. X. Y.` --make-bed --out mymerged 

解决方法

使用流程替换

plink1.9 --bfile --merge-list <(for i in {1..22} X Y; do echo data.chr$i; done) --make-bed --out mymerged