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

文件重命名技术咨询:批量重命名含指定字符串的文件及移除文件名中的"(1)"后缀

批量重命名文件解决方案

嘿,这两个批量重命名的需求我都帮你梳理清楚了,分情况给你讲明白:

1. 批量重命名所有包含指定字符串的文件

根据你的系统环境,有两种常用方法可选:

方法一:Perl版rename(Linux或macOS通过Homebrew安装后可用)

假设你要把文件名里的old_str替换成new_str,直接用下面的命令就行:

rename 's/old_str/new_str/g' *
  • 小提示:g表示全局替换,如果文件名里多次出现目标字符串都会被替换;*匹配当前目录下所有文件。
  • 想先预览修改效果不实际改动?加个-n参数就好:
rename -n 's/old_str/new_str/g' *

方法二:find+mv(通用所有类Unix系统)

如果你的系统没有Perl版rename(比如默认的macOS),用find配合mv也能实现:

find . -type f -name "*old_str*" -exec bash -c 'mv "$0" "${0/old_str/new_str}"' {} \;
  • 解释:find . -type f -name "*old_str*"会找出当前目录及子目录下所有包含old_str的文件,后面的命令会自动把每个文件名里的old_str替换成new_str。
  • 预览效果的话,把mv换成echo mv即可:
find . -type f -name "*old_str*" -exec bash -c 'echo mv "$0" "${0/old_str/new_str}"' {} \;

2. 移除文件名中的"(1)"字符串(用rename命令)

针对file_name (1).extension → file_name.extension的需求,分两种rename版本处理:

Perl版rename(推荐)

因为括号在正则表达式里是特殊字符,所以要加反斜杠转义,命令如下:

rename 's/ \(1\)//g' *
  • 注意:前面的空格也要带上,这样才能精准匹配 (1)这个后缀部分。
  • 预览修改效果:
rename -n 's/ \(1\)//g' *

原生macOS rename

如果用的是macOS默认的rename,语法有所不同,用-s参数直接替换字符串:

rename -s " (1)" "" *
  • 预览效果同样加-n:
rename -n -s " (1)" "" *

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 22:02:49