1. IPython with Pandas if I expect to do any in-depth exploration/manipulation of the data.
2. A short Python script like `python -c 'import csv, sys; r = csv.reader(sys.stdin); ...' <data.csv` if it needs to run on someone else's machine.
3. https://github.com/BurntSushi/xsv if I want to quickly munge some data or extract a field.
4. Gnumeric if I want a GUI.
5. https://github.com/andmarti1424/sc-im if I want a TUI. This is closest to what you were asking for.
> 5. https://github.com/andmarti1424/sc-im if I want
> a TUI. This is closest to what you were asking for.
Thank you! Yes, this seems to be almost perfect. I cannot believe that there is no "arbitrary string search" feature, but I can grep in another terminal window at least.Thank you.
For instance, consider a project that I'm currently working on. Google Docs sheet exported to CSV. The file documents dozens of servers used as load balancers, websites, and database servers. The files has gone from MS Excel to Google Docs, and been maintained by four admins over 12 years. There are no columns per se, rather "sections of rows", each of which isn't even consistent in itself. One section is double columned, with the top row listing public IP address, login name, etc and the second row listing LAN IP address, login password, etc.
sqlite is useless on these files and frankly I've seen these things more often than well-formatted spreadsheets at every company I've ever worked with. Nobody but software developers treat spreadsheet columns as database fields.
csvlook -I | less -S
or
csvformat -T | less -S
(-I to avoid mixed data-types being displayed weird, but I don't consistently use that)from csvkit - https://csvkit.readthedocs.io/en/1.0.2/scripts/csvlook.html
Tons of useful CSV tools in there - csvcut, csvjoin, csvgrep.
csvformat -T
Makes most CSV much more manageable for a shell pipeline, as tabs are easy to deal with and unlikely to be in the actual dataThere are a few CLI applications for working with data stored in a CSV file, so long as the data is formed as a database: each row as a data entry, each column as a database field. The single CLI app that run on Linux for browsing a spreadsheet that is not formed as a database, SC-IM, does not support searching for arbitrary text!
Therefore I am writing osheet: A Linux CLI app for browsing a spreadsheet. It currently supports only XLS files, because that is what I need. It currently crashes a lot. It currently has no features other than searching. It won't even scroll yet to display all the rows and columns. I just banged it out last night when I should have been sleeping. But I'm working on it, you are invited to test it, report bugs, and pull requests are of course welcome. It's written in Python and Curses.
I need to browse the cells in a something like curses.
Something that will show a table, with a single pixel border between cells, that allows searching for a value, copying a cell?