我在目录*.vcf
中有*.vcf.vcfidx
,*.vcf.idx
和/mypath/mydir/
个文件。我想仅使用下面的命令(对于文件1)循环.vcf
文件:
命令:
vcf-subset -c sample.txt vcffile1.vcf | bgzip -c > output_vcfile1.vcf_.vcf.gz
有人可以帮助循环遍历所有.vcf(不是vcf.vcfidx
或vcf.idx
)文件,并使用上面显示的命令获取指定目录/get/inthis/dir/
中每个文件的输出吗? / p>
答案 0 :(得分:1)
只需使用glob模式*.vcf
:
for i in *.vcf; do echo "$i"; done
glob模式*.vcf
将仅匹配以.vcf
结尾的文件。
你的命令:
for i in *.vcf; do
vcf-subset -c sample.txt "$i" | bgzip -c > /get/inthis/dir/output_"$i"_.vcf.gz
done
如果您必须在特定目录中搜索.vcf
个文件,例如/foo/bar/
,执行:
for i in /foo/bar/*.vcf; do
vcf-subset -c sample.txt "$i" | bgzip -c > /get/inthis/dir/output_"${i##*/}"_.vcf.gz
done