🎉 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.
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'])(_)"
--fileoption provide you to apply pre-defined script first--tabif result is Object, print JSON format with specified tab size (default: 2)
npm -g install hosejs
j or js
_ 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'])(_)"
// cw-oneline.js
(() => {
const time = time => new Date(time).toISOString().slice(0, -5).replace('T', ' ')
return _.map(x => `${time(x.timestamp)} ${x.message}`)
})()cat downloaded-cw-log.json | j -f cw-oneline.js > deptno.latest.jsonHmm ... Is it easy to look upside down?
add _.reverse()
cat downloaded-cw-log.json | j -f cw-oneline.js '_.reverse()' > deptno.latest.jsonMIT
