初学者试图让管道在 bash 中工作。如果有人能明白为什么当我运行以下命令时我会得到:
-bash: `$i': not a valid identifier,
这真的很有帮助。另外如果还有其他错误请告诉我
for $i in /home/regionstextfile; do tabix /sequences/human_variation/snps/genotypes.vcf.gz $i | vcftools --window-pi 10000 >> /home/Testgenomesdata/genomesregions.txt; done
这个想法是为regionstextfile(包含基因组坐标)中的每一行运行一个名为tabix
in the vcf.bz
文件,然后输出运行vcftools
与指定的选项,然后将所有输出放入genomesregions.txt
file.
一定是这样:
for i in `</home/regionstextfile`
do
tabix /sequences/human_variation/snps/genotypes.vcf.gz $i | vcftools --window-pi 10000 >> /home/Testgenomesdata/genomesregions.txt
done
当您使用变量时(例如,为其赋值或导出它,或执行除变量本身之外的任何操作),您无需编写其名称即可$
;当你使用你写的变量的值时$
.
EDIT:
当区域名称包含空格但每个区域都在单独的行中时,您需要while
:
cat /home/regionstextfile | while read i
do
tabix /sequences/human_variation/snps/genotypes.vcf.gz "$i" | vcftools --window-pi 10000 >> /home/Testgenomesdata/genomesregions.txt
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)