mcpField
F
find-replace

find-replace

github.com/0xdarkmatter开发7877 次安装2 周前更新
代码仓库

关于 find-replace

find-replace 是使用 sd 在文件中查找和替换文本的命令行技能,适用于代码与文本编辑,并提供批量操作预览和避免部分匹配的指导。

主要功能

  1. 01使用 sd 全局替换文本
  2. 02跨多个文件执行替换
  3. 03预览并安全批量处理
  4. 04使用正则单词边界
  5. 05转义特殊字符

适用场景

  1. 01跨源文件重命名变量或函数
  2. 02更新项目中的导入路径
  3. 03应用替换前预览结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/0xdarkmatter/claude-mods --skill find-replace

安装后在 Claude Code 中输入/find-replace确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
.gitkeep
references/
advanced-patterns.md
scripts/
.gitkeep

详细介绍

查找和替换

使用 sd 进行现代化查找和替换。

sd 基础知识

# Replace in file (in-place)
sd 'oldText' 'newText' file.txt

# Replace in multiple files
sd 'oldText' 'newText' *.js

# Preview without changing (pipe)
cat file.txt | sd 'old' 'new'

sd 与 sed 对比

sedsd
sed 's/old/new/g'sd 'old' 'new'
sed -i 's/old/new/g'sd 'old' 'new' file
sed 's#path/to#new/path#g'sd 'path/to' 'new/path'

主要区别: sd 默认进行全局替换,不存在分隔符问题。

常见模式

# Variable/function rename
sd 'oldName' 'newName' src/**/*.ts

# Word boundaries (avoid partial matches)
sd '\boldName\b' 'newName' src/**/*.ts

# Import path update
sd "from '../utils'" "from '@/utils'" src/**/*.ts

# Capture groups
sd 'console\.log\((.*)\)' 'logger.info($1)' src/**/*.js

安全的批量处理工作流

# 1. List affected files
rg -l 'oldPattern' src/

# 2. Preview replacements
rg 'oldPattern' -r 'newPattern' src/

# 3. Apply
sd 'oldPattern' 'newPattern' $(rg -l 'oldPattern' src/)

# 4. Verify
rg 'oldPattern' src/  # Should return nothing
git diff              # Review changes

特殊字符

字符转义方式
.\.
*\*
[ ]\[ \]
$\$
\\\

提示

提示原因
始终先使用 rg -r 预览避免出错
批量修改前使用 git便于回滚
使用 \b 表示单词边界避免部分匹配
为模式加引号防止 shell 进行解释

更多资源

如需了解详细模式,请加载:

  • ./references/advanced-patterns.md - 正则表达式、批量处理工作流和实际示例

评论

支持 Markdown