I like fsql[1], as it allows me to combine multiple CSV, TSV, LTSV. JSON and YAML files as SQL tables and query against them. Very useful.<p>[1]: <a href="https://metacpan.org/pod/distribution/App-fsql/bin/fsql" rel="nofollow">https://metacpan.org/pod/distribution/App-fsql/bin/fsql</a>
csvtool:<p><a href="https://forge.ocamlcore.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=csv/csv.git;a=blob;f=examples/csvtool.ml;h=950e9aa6705c45f1315b285d055033e42b5d9ea4;hb=HEAD#l512" rel="nofollow">https://forge.ocamlcore.org/plugins/scmgit/cgi-bin/gitweb.cg...</a><p>You will already have this program in your Linux distro since I wrote it about a decade ago and it has been maintained by a small team ever since then. It also handles all the quirks of Excel CSV files and is used extensively in production.
Also openrefine (formally google refine)<p><pre><code> http://openrefine.org/
</code></pre>
is like a GUI version of csvkit.<p>It can do external look ups, fuzzy matching, and has its own programming languages Jython and GREL.
I'm going to continue to throw it out there when anybody mentions csvkit, but I can't believe that more people haven't settled on <a href="http://csvfix.byethost5.com/csvfix15/csvfix.html" rel="nofollow">http://csvfix.byethost5.com/csvfix15/csvfix.html</a>
I'm not totally sure why csvgrep csvsort csvcut csvjoin are needed as replacements for grep sort, cut or join?<p>The syntax doesn't seem noticeably clearer?<p>And - without testing - I presume csvkit in Python is a bit slower than the GNU coreutils in C?
I'd love to add similar features to textql[1]. am currently working on a v2 that does a lot more, but right now it fills a gap not in CSVKit, which is the direct execution of SQL on flat files.<p>[1]: <a href="https://github.com/dinedal/textql" rel="nofollow">https://github.com/dinedal/textql</a>