JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 243
  • Score
    100M100P100Q72574F
  • License MIT

Command line search and replace utility

Package Exports

  • replace-x

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (replace-x) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Travis status Dependency status devDependency status npm version jsDelivr hits bettercodehub score Coverage Status

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

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.

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

What it looks like

replace-x