You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何结合sed与mv工具通过正则批量重命名指定BUSCO相关文件?

没问题,这事儿用sed配合mv做批量重命名很轻松!我给你一套直接能用的方案,还会拆解每个部分帮你理解:

完整批量重命名命令

切换到目标文件所在的目录,直接运行这个bash循环:

for file in BUSCO_Canis_lupus_BUSCO_v3_*; do
    new_name=$(echo "$file" | sed -E 's/^BUSCO_(.*)_BUSCO_v3_[0-9A-F]+_(.*)$/\1_\2/')
    mv "$file" "$new_name"
done

命令拆解说明

  1. 循环遍历文件:for file in BUSCO_Canis_lupus_BUSCO_v3_* 会匹配所有以BUSCO_Canis_lupus_BUSCO_v3_开头的文件,如果你还有其他类似命名的文件,也可以改成更通用的BUSCO_*来匹配所有开头是BUSCO_的文件(不过指定前缀更安全,避免误改其他文件)。

  2. 用sed生成新文件名:

    • sed -E:启用扩展正则表达式模式,让写法更简洁
    • 正则s/^BUSCO_(.*)_BUSCO_v3_[0-9A-F]+_(.*)$/\1_\2/的作用:
      • ^BUSCO_:精准匹配文件名开头的BUSCO_
      • (.*):捕获第一个核心部分(也就是你要保留的Canis_lupus)
      • _BUSCO_v3_[0-9A-F]+_:匹配中间要删除的部分——_BUSCO_v3_加上一串数字/字母(你的例子里有类似451441E0的十六进制字符,所以用[0-9A-F]+覆盖所有可能)
      • (.*)$:捕获最后一部分(比如exon_probs.pbl、parameters.cfg)
      • \1_\2:把两个捕获到的有效部分用下划线拼接,得到最终的新文件名

安全测试小技巧

在实际执行mv之前,你可以先预览一下重命名结果,避免出错:

for file in BUSCO_Canis_lupus_BUSCO_v3_*; do
    echo "$file" → $(echo "$file" | sed -E 's/^BUSCO_(.*)_BUSCO_v3_[0-9A-F]+_(.*)$/\1_\2/')
done

确认所有输出的新文件名都符合你的预期后,再把echo换成mv就行啦!

内容的提问来源于stack exchange,提问作者chippycentra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 10:17:48