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
- Uses JavaScript syntax for regular expressions and replacement strings.
npm install replace -g You can now use replace and search from the command line.
Replace all occurrences of "foo" with "bar" in files in the current directory:
replace 'foo' 'bar' * Replace in all files in a recursive search of the current directory:
replace 'foo' 'bar' . -r Replace only in test/file1.js and test/file2.js:
replace 'foo' 'bar' 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 'foo' 'bar' . -r --include="*.js" Don't replace in files with names matching *.min.js and *.py:
replace 'foo' 'bar' . -r --exclude="*.min.js,*.py" Preview the replacements without modifying any files:
replace 'foo' 'bar' . -r --preview See all the options:
replace -h There's also a search command. It's like grep, but with replace's syntax.
search "setTimeout" . -r You can use replace from your JS program:
var replace = require("replace"); replace({ regex: "foo", replacement: "bar", paths: ['.'], recursive: true, silent: true, });By default, replace and search will exclude files (binaries, images, etc) that match patterns in the "defaultignore" located in this directory.
If 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 -n.
