我有一个文件夹,其中有900个文件名如下:
chr1_643632542_63643636.vcf.gz
chr1_23634521_626356.vcf.gz
chr2_363643262346_234324.vcf.gz
chr2_1345_21346.vcf.gz
....
chr22_134545_3245145.vcf.gz 我试图用循环索引每个文件:
for i in {1..22}
do
bcftools index -t -f chr${i}_*_*.vcf.gz
done 因此,我的结论是:
chr1_643632542_63643636.vcf.gz
chr1_643632542_63643636.vcf.gz.tbi
chr1_23634521_626356.vcf.gz
chr1_23634521_626356.vcf.gz.tbi
chr2_363643262346_234324.vcf.gz
chr2_363643262346_234324.vcf.gz.tbi
chr2_1345_21346.vcf.gz
chr2_1345_21346.vcf.gz.tbi
....
chr22_134545_3245145.vcf.gz
chr22_134545_3245145.vcf.gz.tbi但是,当我运行上述循环时,我只获得第一个染色体条目的索引文件,其余部分被忽略(即一个chr1____.vcf.gz.tbi文件只被索引,其余部分被忽略,然后是第一个chr2文件和第一个chr3文件等等)。
我会很感激你的帮助。
万事如意
发布于 2019-12-04 11:20:01
也许可以直接遍历文件名:
for i in chr*.vcf.gz
do
bcftools index -t -f $i
done https://stackoverflow.com/questions/59160212
复制相似问题