mac批量清理文件名特殊字符有三种方法:①finder手动批量改名,适用于≤50个文件且仅需删空格括号等;②automator创建“清除特殊字符”快速操作,图形化稳定易用;③terminal执行sed+tr命令,精准过滤、转小写、去重下划线,适合进阶用户。

在Mac上处理大量下载文件或从不同系统导入的素材时,常遇到文件名含空格、括号、斜杠、中文标点等特殊字符,导致脚本执行失败、同步异常或终端命令报错,必须批量清理并统一重命名。
用Finder自带功能快速批量删空格和符号
适用于少量文件(≤50个)、只需删除常见符号如空格、括号、顿号、破折号的情况。
选中目标文件→右键→【显示简介】→在“名称与扩展名”栏手动修改第一个文件名→按住 Command 键再点其他文件,使它们也进入可编辑状态→直接输入新名称(如“photo_”)→回车确认。
注意:此方法仅替换前缀,不支持正则过滤;若文件已含数字序号,会全部覆盖为相同编号,慎用。
用Automator创建一键去特殊字符工作流
这是最稳定、无需命令行、可重复使用的图形化方案,适合日常高频操作。
打开 Automator→新建文稿→选择“快速操作”→在左侧搜索栏输入“重命名 Finder 项目”→双击该操作拖入右侧工作区→在下方“重命名”下拉菜单中选择“移除文本”→在“移除以下文本”框中粘贴: \t\n\r()[]{}《》“”‘’;:!?。、·~—–\/&@#%*^+=|~`→勾选“对所有选定项目执行此操作”→顶部菜单栏“文件→存储”,命名为“清除特殊字符”。
之后在任意 Finder 窗口中选中文件→右键→光标移到“快速操作”→点击“清除特殊字符”即可执行。这一步会原地修改文件名,【不可撤销,请提前备份重要文件】。
用Terminal执行精准批量清洗(推荐进阶用户)
当需要保留原始编号逻辑、过滤 Unicode 标点、或统一转小写+下划线时,终端命令更可控。
第一步:打开 Terminal,cd 进入目标文件夹,例如:cd ~/Downloads/test。
第二步:运行以下命令,将所有文件名中的非字母数字字符(除下划线和短横线外)替换为单个下划线,并自动去重、去首尾下划线:
for f in *; do [[ -f "$f" ]] || continue; new=$(echo "$f" | sed -E 's/[^a-zA-Z0-9_\-.]+/_/g' | sed -E 's/^_+|_+$//g' | sed -E 's/_+/_/g'); [[ "$f" != "$new" ]] && mv "$f" "$new"; done
第三步:如需进一步把大写字母全转小写,追加管道:| tr 'A-Z' 'a-z',整合后完整命令为:
for f in *; do [[ -f "$f" ]] || continue; new=$(echo "$f" | sed -E 's/[^a-zA-Z0-9_\-.]+/_/g' | sed -E 's/^_+|_+$//g' | sed -E 's/_+/_/g' | tr 'A-Z' 'a-z'); [[ "$f" != "$new" ]] && mv "$f" "$new"; done
这行命令会跳过子文件夹,只处理当前层文件;若遇同名冲突(如“a.txt”和“A.TXT”都转成“a_txt”),后执行的会因重名报错,【请确保原始文件名语义不重复】。











