首页 > 解决方案 > 如何在命令行中传递多个输入?

问题描述

我正在尝试执行一个合并染色体数据的命令。因为我需要合并来自染色体 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 

标签: linuxbashshellunixcommand-line

解决方案


使用进程替换

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

推荐阅读