replace is a command line utility for performing search-and-replace on files. It's similar to sed but there are a few differences:
- Modifies files when matches are found
- Recursive search on directories with -r
npm install replace -g
Replace all occurrences of "var" with "let" in files in the current directory:
replace 'var' 'let' *
Replace in all files in a recursive search of the current directory:
replace 'var' 'let' . -r
Replace only in test/file1.js and test/file2.js:
replace 'var' 'let' test/file1.js test/file2.js
Replace all word pairs with "_" in middle with a "-":
replace '(\w+)_(\w+)' '$1-$2' *
Replace only in files with names matching *.js:
replace 'var' 'let' . -r --include="*.js"
Don't replace in files with names matching *.min.js and *.py:
replace 'var' 'let' . -r --exclude="*.min.js,*.py"
Preview the replacements without modifying any files:
replace 'var' 'let' . -r --preview
See all the options:
There's also a
search command. It's like
grep, but with
replace's syntax, and slower!
search "setTimeout" . -r
search will exclude files (binaries, images, etc) that match patterns in the
"defaultignore" located in this directory.
On huge directories
replace is taking too long on a large directory, try turning on the quiet flag with
-q, only including the necessary file types with
--include or limiting the lines shown in a preview with