mirror of
https://github.com/antonmedv/fx
synced 2024-11-17 09:25:32 +00:00
.gitignore | ||
.travis.yml | ||
bang.js | ||
config.js | ||
DOCS.md | ||
find.js | ||
fx.js | ||
index.js | ||
LICENSE | ||
package.json | ||
print.js | ||
README.md | ||
reduce.js | ||
std.js | ||
stream.js | ||
test.js |
* Function eXecution
Command-line JSON processing tool
Features
- Easy to use
- Standalone binary
- Interactive mode 🎉
- Streaming support 🌊
Install
npm install -g fx
Or via Homebrew
brew install fx
Or download standalone binary from releases
bash <( curl https://fx.wtf )
Usage
Start interactive mode without passing any arguments.
$ curl ... | fx
Or by passing filename as first argument.
$ fx data.json
Pass a few JSON files.
cat foo.json bar.json baz.json | fx .message
Use full power of JavaScript.
$ curl ... | fx '.filter(x => x.startsWith("a"))'
Access all lodash (or ramda, etc) methods by using .fxrc file.
$ curl ... | fx '_.groupBy("commit.committer.name")' '_.mapValues(_.size)'
Update JSON using spread operator.
$ echo '{"count": 0}' | fx '{...this, count: 1}'
{
"count": 1
}
Extract values from maps.
$ fx commits.json | fx .[].author.name
Print formatted JSON to stdout.
$ curl ... | fx .
Pipe JSON logs stream into fx.
$ kubectl logs ... -f | fx .message
And try this:
$ fx --life
Documentation
See full documentation.
Links
Related
- gofx – fx-like JSON tool (go)
- eat – converts anything into JSON
- ymlx – fx-like YAML cli processor
- fx-completion – bash completion for fx
- fx-theme-monokai – monokai theme
- fx-theme-night – night theme