HoseJS
🎉 Data handling with ramda.js (version 1.3 or higher)
100% code coverage.
You can transform JSON(or NOT) data with just JavaScript in terminal.
jq
? javascript is clearly better option for people already use javascript.
Feature
Data handling with ramda.js (version 1.3 or higher)
You can use ramda.js
eg. http https://swapi.co/api/people/1/ | j -r "props(['name', 'height'])"
eg. http https://swapi.co/api/people/1/ | j -ramda "props(['name', 'height'])"
eg. http https://swapi.co/api/people/1/ | j "props(['name', 'height'])(_)"
Options
--file
option provide you to apply pre-defined script first--tab
if result is Object, print JSON format with specified tab size (default: 2)
Install
npm -g install hosejs
Command
j
or js
Usage
_
is everything you need to know
$ cat some.json | j '_.map(x => x.timestamp)'$ cat some.json | j '_.map(x => x.timestamp)' --tab 4$ cat some.json | j '_.map(x => x.timestamp)' --file pre.js --tab 2$ cat some.json | j '_.map(x => x.timestamp)' > some.json$ cat some.json | j '[_].map(x => x.some_property + '👍')[0]'$ cat some.json | j '_.map(x => new Date(x.timestamp).toISOString())'$ cat some.json | j --file preload.js '_.map(x => x.timestamp)'$ http https://swapi.co/api/people/ | j 'Object.keys(_)'$ http https://swapi.co/api/people/ | j '_.count'$ http https://swapi.co/api/people/ | j '_.results.map(x => x.name)'$ echo 'not json string \n !!' | j '_.split("\n")'$ http https://swapi.co/api/people/1/ | j -r "props(['name', 'height'])" $ http https://swapi.co/api/people/1/ | j -ramda "props(['name', 'height'])" $ http https://swapi.co/api/people/1/ | j "props(['name', 'height'])(_)"
Inject script file
IIFE
// cw-oneline.js { const time = time return _}
cat downloaded-cw-log.json | j -f cw-oneline.js > deptno.latest.json
Hmm ... Is it easy to look upside down?
add _.reverse()
cat downloaded-cw-log.json | j -f cw-oneline.js '_.reverse()' > deptno.latest.json
License
MIT