1.7.2 • Published 5 years ago

replace-x v1.7.2

Weekly downloads
776
License
MIT
Repository
github
Last release
5 years ago

replace-x

replace-x is a command line utility for performing in place 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.
  • Uses XRegExp to provide augmented (and extensible) JavaScript regular expressions.

Install

With node.js and npm:

npm install replace-x -g

You can now use replace-x and search-x from the command line.

Examples

Replace all occurrences of "foo" with "bar" in files in the current directory:

replace-x 'foo' 'bar' *

Replace in all files in a recursive search of the current directory:

replace-x 'foo' 'bar' . -r

Replace-x only in test/file1.js and test/file2.js:

replace-x 'foo' 'bar' test/file1.js test/file2.js

Replace-x all word pairs with "_" in middle with a "-":

replace-x '(\w+)_(\w+)' '$1-$2' *

Replace only in files with names matching *.js:

replace-x 'foo' 'bar' . -r --include="*.js"

Don't replace in files with names matching .min.js and .py:

replace-x 'foo' 'bar' . -r --exclude="*.min.js,*.py"

Preview the replacements without modifying any files:

replace-x 'foo' 'bar' . -r --preview

See all the options:

replace-x -h

Search

There's also a search-x command. It's like grep, but with replace-x's syntax.

search-x "setTimeout" . -r

Programmatic Usage

You can use replace from your JS program:

import replace from 'replace-x';

replace({
  regex: 'foo',
  replacement: 'bar',
  paths: ['.'],
  recursive: true,
  silent: true,
});

More Details

Excludes

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

On huge directories

If replace-x 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.

Limitations

Line length

By default, replace-x works on files with lines of 400 characters or less. If you need to work on long lines, gnu sed supports unlimited line length.

Symbolic links

By default, replace-x does not traverse symbolic links for files in directories.

What it looks like

replace-x

1.7.2

5 years ago

1.7.1

5 years ago

1.7.0

5 years ago

1.6.18

5 years ago

1.6.17

5 years ago

1.6.16

5 years ago

1.6.15

5 years ago

1.6.14

5 years ago

1.6.13

5 years ago

1.6.12

5 years ago

1.6.11

5 years ago

1.6.10

5 years ago

1.6.9

5 years ago

1.6.8

5 years ago

1.6.7

5 years ago

1.6.6

5 years ago

1.6.5

5 years ago

1.6.4

5 years ago

1.6.3

5 years ago

1.6.2

5 years ago

1.6.1

5 years ago

1.6.0

5 years ago

1.5.0

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.0

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago