sd: Fast Find & Replace
Always invoke sd skill for find & replace operations - do not execute bash commands directly.
Use sd for intuitive text replacement that's 2-12x faster than sed.
When to Use sd vs ripgrep
Use sd when:
- •Performing replacements on known patterns
- •Batch text transformations across files
- •Need JavaScript-style regex syntax
- •Direct file modifications without search first
Use ripgrep when:
- •Finding unknown patterns or locations
- •Need search results without immediate changes
- •Complex file filtering and type matching
- •Want to preview before modifying
Common workflow: ripgrep skill → sd skill (search first, then replace)
Default Strategy
Invoke sd skill for fast find & replace operations. Use when performing replacements on known patterns, batch text transformations across files, or need JavaScript-style regex syntax.
Common workflow: ripgrep skill → sd skill (search first, then replace) or fd skill → sd skill for batch operations.
Key Options
- •
-Ffor string-literal mode (no regex) - •
$1, $2or${var}for capture groups - •
--previewto preview changes - •
--before patterns starting with- - •
$$for literal$in replacement
When to Use
- •Quick file edits
- •Pipeline replacements:
cat file | sd "old" "new" - •Batch operations across multiple files
- •Complex regex with capture groups
Common Workflows
- •
fd → sd: Find files and perform batch replacements - •
ripgrep | sd: Search patterns and replace across matches - •
jq | sd: Extract JSON data and transform to other formats - •
cat file | sd | bat: Transform content and preview with highlighting
Core Principle
Replace text with familiar JavaScript/Python regex syntax - no sed escape hell.
Detailed Reference
For comprehensive find & replace patterns, regex syntax examples, and workflow tips, load sd guide when needing:
- •Advanced regex patterns with capture groups
- •Pipeline operations and batch processing
- •Escape sequence handling
- •Common text transformation recipes
- •Integration with other command-line tools
The guide includes:
- •String-literal vs regex mode usage
- •Capture group patterns and replacements
- •Pipeline operations and batch processing
- •Advanced regex patterns and edge cases
- •Integration with other command-line tools
Skill Combinations
For Discovery Phase
- •ripgrep → sd: Search patterns first, then replace across matches
- •fd → sd: Find files and perform batch replacements
- •jq/yq → sd: Extract data and transform to other formats
For Analysis Phase
- •sd --preview → bat: Preview changes with syntax highlighting
- •sd → fzf: Interactive selection of changes to apply
- •sd → jq/yq: Transform data back to structured formats
For Refactoring Phase
- •sd → searching-text: Verify replacements didn't introduce issues
- •sd → analyzing-code-structure: Follow up with structural changes if needed
- •sd → analyzing-code: Measure impact of text-based changes
Integration Examples
# Find and replace across project fd -e js -x sd "oldPattern" "newPattern" --preview # Chain transformations cat config.json | jq '.version' | sd '"v' '' | sd '"' '' | xargs git tag # Interactive replacement with preview rg "deprecated" -l | fzf --multi | xargs sd "deprecated" "legacy" --preview | bat