So as initially suggested I haven’t been good about blogging yet. I’ve been quite busy with work. But I did want to pass along one small tip I’ve picked up.
A lot of the work I’ve been doing has been a combination of Ruby/Python and command line data parsing. In much of this shell I’m working through JSON documents on the command line, often using commands like:
_$ cat foo.txt | grep “foo” | sort | uniq_
I’ve learned a lot about composing commands and the beauty of the Unix philosophy, it’s been great. But I hit a lot of issues with some tools that initially spit out “ugly”, overly terse JSON:
[{"foo": "foo", "bar": [1, 2, 3], "baz": "baz"}]
Valid? Yes, but difficult to work with, especially on the command line with the simple grep commands I was using. I got close to writing a tool to use Python or Ruby’s built in conversion until I found:
_$ cat foo_ugly.json | python -tmjson.tool > foo_pretty.json_
Which spit out the far easier to read and work with:
[ { "foo": "foo", "bar": [1, 2, 3], "baz": "baz" } ]
Just a little tip if you’re also using lots of JSON on the command line.
So a number of people were kind enough to respond on Twitter to my post on this and recommend I look into ./jq, which describes itself as “jq is like sed for JSON data”. I’ve played with it a bit and must say it seems like a very cool tool that could certainly help with what I’m doing. I’m going to use it for a few days, dig into it more, and maybe post a follow up.
Thanks @danthompson, @pengynn, & @1stvamp!