Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/harthur/replace
Command line search and replace utility
https://github.com/harthur/replace
Last synced: 3 months ago
JSON representation
Command line search and replace utility
- Host: GitHub
- URL: https://github.com/harthur/replace
- Owner: harthur
- License: mit
- Archived: true
- Created: 2011-06-05T20:47:55.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2019-11-06T17:28:47.000Z (about 5 years ago)
- Last Synced: 2024-06-20T12:24:29.076Z (5 months ago)
- Language: JavaScript
- Homepage:
- Size: 52.7 KB
- Stars: 749
- Watchers: 10
- Forks: 87
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-star - replace
README
# replace
`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](https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions#Using_Simple_Patterns) for regular expressions and [replacement strings](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter).# Install
With [node.js](http://nodejs.org/) and [npm](http://github.com/isaacs/npm):npm install replace -g
You can now use `replace` and `search` from the command line.
## Examples
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
```## 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:```javascript
var replace = require("replace");replace({
regex: "foo",
replacement: "bar",
paths: ['.'],
recursive: true,
silent: true,
});
```## More Details
### Excludes
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
![replace](http://i.imgur.com/qmJjS.png)