find-replace
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
| sed | sd |
|---|---|
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
| Character | Escape |
|---|---|
. |
\. |
* |
\* |
[ ] |
\[ \] |
$ |
\$ |
\ |
\\ |
Tips
| Tip | Reason |
|---|---|
Always preview with rg -r first |
Avoid mistakes |
| Use git before bulk changes | Easy rollback |
Use \b for word boundaries |
Avoid partial matches |
| Quote patterns | Prevent shell interpretation |
Additional Resources
For detailed patterns, load:
./references/advanced-patterns.md- Regex, batch workflows, real-world examples
More from 0xdarkmatter/claude-mods
file-search
Modern file and content search using fd, ripgrep (rg), and fzf. Triggers on: fd, ripgrep, rg, find files, search code, fzf, fuzzy find, search codebase.
160container-orchestration
Docker and Kubernetes patterns. Triggers on: Dockerfile, docker-compose, kubernetes, k8s, helm, pod, deployment, service, ingress, container, image.
76python-pytest-patterns
pytest testing patterns for Python. Triggers on: pytest, fixture, mark, parametrize, mock, conftest, test coverage, unit test, integration test, pytest.raises.
60python-env
Fast Python environment management with uv (10-100x faster than pip). Triggers on: uv, venv, pip, pyproject, python environment, install package, dependencies.
50data-processing
Process JSON with jq and YAML/TOML with yq. Filter, transform, query structured data efficiently. Triggers on: parse JSON, extract from YAML, query config, Docker Compose, K8s manifests, GitHub Actions workflows, package.json, filter data.
49sqlite-ops
Patterns for SQLite databases in Python projects - state management, caching, and async operations. Triggers on: sqlite, sqlite3, aiosqlite, local database, database schema, migration, wal mode.
48