如何在bash终端中使用for循环批量对sorted.bam文件执行samtools索引操作
批量执行samtools index的for循环实现
直接用通配符匹配当前目录下所有.sorted.bam文件遍历执行即可,完整代码如下:
for bam_file in *.sorted.bam do samtools index "$bam_file" done
也可以写成单行命令直接在终端运行:for bam_file in *.sorted.bam; do samtools index "$bam_file"; done
实用建议
- 变量外的双引号不可省略,可以兼容文件名带空格、特殊符号的场景,避免执行出错
- 正式执行前可先执行
for bam_file in *.sorted.bam; do echo "$bam_file"; done,确认匹配到的文件都是你需要处理的目标文件,避免误操作 - 执行完成后每个bam文件同级目录会生成对应的
.bai后缀索引文件
内容的提问来源于stack exchange,提问作者adR
相关产品推荐
相关产品推荐

