Skip to content


Subversion checkout URL

You can clone with
Download ZIP
[UNMAINTAINED] Command line search and replace utility
Latest commit 04c99bd @harthur Merge pull request #43 from danc86/license
add MIT license text


replace is a command line utility for performing search-and-replace on files. It's similar to sed but there are a few differences:


With node.js and npm:

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

Programmatic Usage

You can use replace from your JS program:

var replace = require("replace");

  regex: "foo",
  replacement: "bar",
  paths: ['.'],
  recursive: true,
  silent: true,

More Details


By default, replace and search will exclude files (binaries, images, etc) that match patterns in the "defaultignore" located in this directory.

On huge directories

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.

What it looks like


Something went wrong with that request. Please try again.