| `\\ find-replace · Skills-SI 市场 |\n| `\\` | `\\\\` |\n\n## Tips\n\n| Tip | Reason |\n|-----|--------|\n| Always preview with `rg -r` first | Avoid mistakes |\n| Use git before bulk changes | Easy rollback |\n| Use `\\b` for word boundaries | Avoid partial matches |\n| Quote patterns | Prevent shell interpretation |\n\n## Additional Resources\n\nFor detailed patterns, load:\n- `./references/advanced-patterns.md` - Regex, batch workflows, real-world examples\n","licenseDocuments":[]}}
界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

find-replace

find-replace

【效率与协作】Modern find-and-replace using sd (simpler than sed) and batch replacement patterns. Triggers on: sd, find replace, batch replace, sed replacement, string replacement, rename.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: find-replace description: "Modern find-and-replace using sd (simpler than sed) and batch replacement patterns. Triggers on: sd, find replace, batch replace, sed replacement, string replacement, rename." license: MIT compatibility: "Requires sd CLI tool. Install: brew install sd (macOS) or cargo install sd (cross-platform)." allowed-tools: "Bash" metadata: author: claude-mods

Find Replace

Modern find-and-replace using sd.

sd Basics

# 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 vs 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'

Key difference: sd is global by default, no delimiter issues.

Common Patterns

# 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

Safe Batch Workflow

# 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

Special Characters

CharacterEscape
.\.
*\*
[ ]\[ \]
$\$
\\\

Tips

TipReason
Always preview with rg -r firstAvoid mistakes
Use git before bulk changesEasy rollback
Use \b for word boundariesAvoid partial matches
Quote patternsPrevent shell interpretation

Additional Resources

For detailed patterns, load:

  • ./references/advanced-patterns.md - Regex, batch workflows, real-world examples
我的收藏