$ jowl '{"messages" : _.map(d, "commit.author.date")}' < commits.json
Jowl is a command-line filter for JSON expressions that uses plain JavaScript with Lodash. It takes JSON on standard in, and writes pretty-printed JSON to standard out.
Jowl's goals are:
- Easy to learn: Syntax you already know, as little magic as pratical
- Concise: intended to be used in one-liners, where keystrokes are at a premium
- Convenient: Do What I Mean shortcuts exist, but are not required for use
Install Homebrew. Then run:
brew install daxelrod/jowl/jowl
Jowl requires NodeJS(all LTS versions are supported) running on either Unix or Windows.
npm install --global --production jowl
See the complete reference.
Several programs fulfill the same needs as Jowl. They are more mature and better polished. However, there is still a sweet spot among them that Jowl hits.
JQ is an awesome program for querying and transforming JSON that is better than Jowl in almost every way. Unfortunately, it uses its own syntax that can be hard to remember unless used frequently. Jowl's main benefit is that it uses familiar JavaScript syntax and Lodash functions.
Underscore-CLI also processes JSON with
JavaScript expressions and Underscore. It supports multiple kinds of operations, can
output to several formats, and can even handle CoffeeScript input. It's extremely
polished. Unfortunately, it either requires more typing than Jowl:
underscore process "data[0]"
vs jowl "d[0]"
or learning its shortcuts, which are
subcommands on the command line.
See the guide to contributing.