如何批量将.hic文件转换为.mcool格式并修正输出文件名?
修正批量转换.hic到.mcool的文件名问题
修正后的批量转换代码如下:
for id in *.hic; do hic2cool convert "$id" "${id%.hic}.mcool"; done
问题原因与修正说明
- 原代码中的
${id%.}写法无法正确移除.hic后缀:该语法的作用是匹配并移除文件名末尾最短的以单个点结尾的后缀,但.hic结尾的文件名末尾没有单独的点,因此原文件名的.hic会被完整保留,最终输出abc.hic.mcool。 - 修正后的
${id%.hic}是Bash参数扩展的正确用法:它会精准匹配并移除文件名末尾的.hic后缀,将abc.hic处理为abc,再拼接.mcool就得到了目标文件名abc.mcool。 - 给变量
$id添加双引号"$id"是为了避免文件名包含空格或特殊字符时出现执行错误。
内容的提问来源于stack exchange,提问作者Anon
相关产品推荐
相关产品推荐

