SuperAPI AI 工具集

find-replace

编程与开发

查看项目

更新于 10-13 16:43

技能介绍

Find Replace 是一个基于 sd 的现代查找与替换技能,用于在文件与代码库中执行批量字符串替换。相较传统 sed,资料强调 sd 语法更简单:sd 'oldText' 'newText' file.txt 即可就地替换,sd 'oldText' 'newText' *.js 可处理多个文件,而 cat file.txt | sd 'old' 'new' 可在不修改文件的情况下预览结果。

与 sed 的关键差异在于:sed 需要写成 sed 's/old/new/g' 形式并常配合 -i,而 sd 直接写 sd 'old' 'new' 即为全局替换,且默认无需处理分隔符冲突,避免路径中含 / 时需要改用井号等分隔符的问题。

该技能列出了若干常见替换模式:变量或函数重命名可用 sd 'oldName' 'newName' src/**/.ts;为避免命中部份内容可使用单词边界 sd '\boldName\b' 'newName';更新 import 路径可写 sd "from '../utils'" "from '@/utils'";还支持捕获组,例如 sd 'console.log((.))' 'logger.info($1)' 批量改写日志调用。

为保证批量修改安全,资料给出推荐工作流:先 rg -l 'oldPattern' src/ 列出受影响文件,再用 rg 'oldPattern' -r 'newPattern' src/ 预览替换结果,然后用 sd 'oldPattern' 'newPattern' $(rg -l 'oldPattern' src/) 应用,最后用 rg 确认旧模式已无残留,并通过 git diff 复核改动。

对于特殊字符,资料提示需转义 .、*、[ ]、$、\ 等,并建议使用 \b 控制单词边界、为模式加引号防止 shell 解析,以及在批量变更前先用 git 提交以便回滚。更多高级模式、正则与真实案例存放在 references/advanced-patterns.md 中,可按需加载。该技能的适用场景主要是代码重构与文本批处理,如符号重命名、导入路径迁移等。关于发行方、收费或价格、平台限制等资料暂未提供。