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

批量重命名匹配正则的文件:求替换h为j的Bash/Python脚本

批量重命名文件:将文件名中的h替换为j

需求说明

现有如下格式的文件:

abc-h-25-Data.db
abc-h-25-Filter.db
abc-h-25-Index.db
abc-h-25-Metadata.db
abc-h-25-Statistics.db
abc-h-25-Summary.db

需要批量将文件名中的h替换为j,重命名后得到:

abc-j-25-Data.db
abc-j-25-Filter.db
abc-j-25-Index.db
abc-j-25-Metadata.db
abc-j-25-Statistics.db
abc-j-25-Summary.db

解决方案

1. Bash 实现

方法一:使用 rename 命令(简洁高效)

直接执行以下命令即可完成批量重命名:

rename 's/h/j/' abc-h-25-*.db
  • 解释:s/h/j/ 是Perl风格的替换表达式,将文件名中的h替换为j;abc-h-25-*.db 匹配所有需要处理的文件。

方法二:使用 for 循环(兼容性更强)

如果系统没有rename命令,可使用通用的for循环:

for file in abc-h-25-*.db; do
  mv "$file" "${file/h/j}"
done
  • 解释:${file/h/j} 是Bash的参数替换语法,将变量file中的第一个h替换为j。

2. Python 实现

以下脚本可实现批量重命名,适合需要更复杂逻辑扩展的场景:

import os

# 遍历当前目录下的目标文件
for filename in os.listdir('.'):
    if filename.startswith('abc-h-25-') and filename.endswith('.db'):
        # 替换文件名中的h为j
        new_filename = filename.replace('h', 'j')
        # 执行重命名
        os.rename(filename, new_filename)
  • 解释:先筛选符合命名规则的文件,再通过字符串替换生成新文件名,最后调用os.rename完成重命名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:55:16