Bash

Find + Replace Across Many Files

admin by @admin ADMIN
1m ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Use `find` + `sed -i` to do project-wide refactors. Always test the regex first with a dry run.
Bash
Raw
# Dry run — print what WOULD change
grep -rln "old_name" src/

# Replace in matching files (GNU sed)
find src -type f -name "*.py" -exec sed -i 's/old_name/new_name/g' {} +

# BSD/macOS sed: requires an extension arg for -i (use '' for no backup)
find src -type f -name "*.py" -exec sed -i '' 's/old_name/new_name/g' {} +

# Make a backup of every modified file (.bak extension)
find . -name "*.conf" -exec sed -i.bak 's/localhost/example.com/g' {} +

# Limit to files containing the pattern first (faster on large trees)
grep -rl "old_name" src/ | xargs sed -i 's/old_name/new_name/g'
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.