mac终端批量替换文件关键词有三种方法:1. find+sed精准筛选后替换;2. grep+xargs快速定位替换;3. rpl工具傻瓜式操作,需先brew安装。

在Mac终端中批量替换当前目录下所有文件的关键词,是处理代码配置、文档更新或模板统一修改时最常遇到的需求,手动打开每个文件效率极低且容易遗漏。
用find + sed一次性替换所有匹配文件
这是最常用、最可控的方式,适用于你已明确目标字符串且需覆盖当前目录全部文本文件的场景。
第一步:打开“终端”,输入cd后拖入当前文件夹到窗口,回车进入目录。
第二步:执行命令:find . -type f -exec grep -l "旧关键词" {} \; -exec sed -i '' 's/旧关键词/新关键词/g' {} \;。
这条命令先用grep筛选出含“旧关键词”的文件,再只对这些文件执行sed替换——避免误改空文件或二进制文件。【必须确保“旧关键词”不含斜杠/、美元符$、点号.等正则特殊字符,否则需转义】
第三步:若要限定文件类型(比如只改.md和.txt),把-type f换成-name "*.md" -o -name "*.txt",并用括号包裹:find . \( -name "*.md" -o -name "*.txt" \) -exec grep -l "旧关键词" {} \; -exec sed -i '' 's/旧关键词/新关键词/g' {} \;。
用grep + xargs快速定位并替换
当你已经确认目标关键词只出现在少量文件里,想跳过find遍历、直接精准打击时,这个组合更快。
方法一:先查有哪些文件含关键词:grep -rl "config_url" ./,回车后会列出所有路径。
方法二:确认无误后,直接替换:grep -rl "config_url" ./ | xargs sed -i '' 's/config_url/config_path/g'。
注意:如果关键词里有斜杠(如/api/v1/),grep和sed两边都得写成\/api\/v1\/,漏一个就会报错退出。
用rpl工具实现傻瓜式替换
rpl比sed更贴近自然语言,不用记正则语法,适合不熟悉命令行但需要高频替换的用户。
先安装:brew install rpl(没装Homebrew就先装)。
然后运行:rpl "旧关键词" "新关键词" *,这会替换当前目录下所有文件(包括隐藏文件)。
加-R参数可递归处理子目录:rpl -R "旧关键词" "新关键词" ./。
这一步操作起来很简单,直接把命令敲完回车就行,但【rpl默认不备份原文件,执行前务必确认已备份或能接受不可逆修改】。
安全起见:先预览再动手
不管用哪种方法,动手前都该先看一眼哪些文件会被波及。
运行grep -rn "旧关键词" . --include="*.txt" --include="*.md" --include="*.js",它会显示每处匹配的文件名+行号。
如果输出为空,说明关键词根本不存在——这时候执行替换就是白忙一场。
如果输出太多,就加| head -20截取前20行快速扫一遍,避免翻屏疲劳。











