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

技术问询:如何用rename工具批量移除文件名中指定特征后缀

用rename批量重命名文件的解决方案

要实现你需要的重命名规则——移除文件名中从“_后跟8个大写字母”开始的所有字符,仅保留前缀和文件扩展名——可以使用Perl版本的rename工具(多数Linux发行版默认预装),通过正则表达式匹配并替换文件名。

执行步骤

  1. 先预览重命名效果(不会实际修改文件,放心测试):
rename -n 's/_[A-Z]{8}.*(\.[^.]+)$/$1/' *
  1. 确认预览结果符合预期后,去掉-n参数执行实际重命名:
rename 's/_[A-Z]{8}.*(\.[^.]+)$/$1/' *

正则表达式逻辑拆解

  • _[A-Z]{8}:精准匹配下划线开头,紧跟8个大写英文字母的片段,这就是你要移除内容的起始标记
  • .*:匹配这个起始标记之后,直到扩展名之前的所有任意字符
  • (\.[^.]+)$:捕获文件名末尾的扩展名部分(从最后一个点到结尾,确保即使文件名里有多个点也能正确保留最终扩展名)
  • $1:替换时保留捕获到的扩展名,前面匹配到的所有内容都会被删除

示例验证

拿你给出的文件名测试,完全符合预期:

  • 原始:4585_10_148_H2A119Ub_GTCTGTCA_S51_mcdf_mdup_ngsFlt.fm → 处理后:4585_10_148_H2A119Ub.fm
  • 原始:4585_32_148_1_INPUT_previous_AGAGTCAA_S72_mcdf_mdup_ngsFlt.bw → 处理后:4585_32_148_1_INPUT_previous.bw

额外提示

  • 如果你的系统是BSD/macOS,默认的rename是另一个版本,语法不同,建议先安装Perl版的rename(比如通过brew install rename)再使用上述命令。
  • 如果目标文件只有特定扩展名,可以把命令里的*换成*.fm *.fw *.bw,避免误改其他文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:42:19