Jd is also decent. More expressive languages for data.
Jd is also decent. More expressive languages for data.
I find VisiData is great for quickly exploring and querying data from the CLI. It can handle many types of files (SQLite, CSV, TSV, Excel, JSON, YAML, etc). Visidata loads all the data into memory, and so is very responsive when exploring the data. It allows you to quickly do all sorts of of adhoc queries interactively, without having to write a valid SQL query.
I haven't used Q. When I first heard of it, I liked the idea that Q allowed you to run random queries on CSV and TSV files. However, it seemed like it would be slow if you wanted to do follow up queries, since it had to repopulate the in memory SQLite file for each query. Though it looks like the latest version has a way to cache the generated sqlite file. So that seems like it could help.
Also, if I have some CSV, TSV, JSONL data sqlite-utils is useful for converting them to SQLite, and then exploring with Visidata or SQL queries.
Q: https://github.com/harelba/q sqlite-utils: https://github.com/simonw/sqlite-utils
Edit:
PS Unaffiliated, just a fan since 2016(?)
PPS Despite the name and original / primary use case, lnav is useful for things beyond "just" logfiles(!)