Meanwhile HN luddites: let me use awk, cut and whatnot despite the existence of an util that explicitly sidesteps this issue.
(
trap "kill 0" SIGINT;
export LC_ALL=C;
find movies.dat.gz -print0
| xargs -0 -i sh -c "gzip -dc {} | tail -n +2"
| sed "s/::/;/g"
| cut -d $';' -f2
| sort -t$';' -k 1,1
| head -n10
| awk -F ';' '{print $1}'
)
Yeah, how about no. That's a very neat site and a clever hack, but there are clear escaping flaws in there for valid movie names.bash and standard unix tools are a terrible structured-data manipulator. it's part of why `jq` is so widely used and loved, despite being kinda slow and hard to remember at times - it does things correctly, unlike most glued-together tools.
I don't think I've ever used it to parse JSON, but I've definitely used it to output simple JSON.
I'm not necessarily recommending it, but it's certainly possible and could be portable and really fast to run with a low memory footprint.
Personally I prefer using a readymade and tested library in any language that I might touch, so I can just do my own thing on top. Or, in command line, to use an util that employs such a library. Kind of hope that I'm never so constrained that only awk is available and I can't even spin up Lua.
One good one is Strozzi NoSQL (his use of the term NoSQL predates the current use of the term by many years...): http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/NoSQL/Home%20P...
Starbase is another, with interesting extensions for astronomical work.
Linux Review article on the concept here: https://www.linuxjournal.com/article/3294
The article that started it all: http://www.linux.it/~carlos/nosql/4gl.ps
And there's even a book on the subject, centered on the /rdb implementation by the late RSW software. But I warn you, reading this WILL permanently change the way you think about databases: https://www.amazon.com/Relational-Database-Management-Prenti...
[0]: https://www.sqlite.org/tclsqlite.html [1]: http://harelba.github.io/q/#limitations
If you have "unclean" CSV data, e.g. where the data contains delimiters and/or newlines in quoted fields, you might want to pipe it through csvquote.
I've used this in combination with jq as well. I'll use jq to convert json to CSV, and then use SQL to do whatever else.