ecalper
v1.0.0
Published
Command line search and replace utility.
Downloads
2
Readme
ecalper
ecalper
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.
Install
npm i -g ecalper
You can now use ecalper
and search
from the command line.
Examples
Replace all occurrences of "foo" with "bar" in files in the current directory:
ecalper 'foo' 'bar' *
Replace in all files in a recursive search of the current directory:
ecalper 'foo' 'bar' . -r
Replace only in test/file1.js and test/file2.js:
ecalper 'foo' 'bar' test/file1.js test/file2.js
Replace all word pairs with "_" in middle with a "-":
ecalper '(\w+)_(\w+)' '$1-$2' *
Replace only in files with names matching *.js:
ecalper 'foo' 'bar' . -r --include="*.js"
Don't replace in files with names matching .min.js and.py:
ecalper 'foo' 'bar' . -r --exclude="*.min.js,*.py"
Preview the replacements without modifying any files:
ecalper 'foo' 'bar' . -r --preview
Replace using stdin:
echo "asd" | replace "asd" "dsa" -z
See all the options:
ecalper -h
Search
There's also a search
command. It's like grep
, but with replace
's syntax.
search "setTimeout" . -r
Programmatic Usage
You can use replace from your JS program:
import ecalper from 'ecalper'
ecalper({
regex: "foo",
replacement: "bar",
paths: ['./Test/'],
recursive: false,
silent: false,
})
More Details
Excludes
By default, ecalper
and search
will exclude files (binaries, images, etc) that match patterns in the "defaultignore"
located in this directory.
On huge directories
If ecalper
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
.