9 breaking releases
0.10.1 | Aug 4, 2024 |
---|---|
0.10.0 | May 7, 2024 |
0.9.0 | Apr 3, 2024 |
0.8.0 | Dec 15, 2023 |
0.2.0 | Nov 28, 2020 |
#384 in Parser implementations
3MB
2K
SLoC
Tass
A pager for tabular data
tass
- it's like less
, but for tables! It can read CSV/TSV and parquet
files. It looks like this:
You can see tass's schema inference in action here. The fourth and fifth columns only contains a small number of unique values, so tass colour-codes them automatically. The columns to the right of those are numerical, so tass right-aligns them and shows negative values in red.
This demo shows data being piped into (an older version of) tass. You can also open files which are still being appeanded to, and new rows will appear as the file grows.
Installing
If you already have rust, you can install tass like this:
$ cargo install tass
Usage
You can pass a filename, or pipe data to stdin:
$ tass mydata.csv
$ cat mydata.csv | tass
Key | Action |
---|---|
Up/j, PageUp | Move up one row, page |
Down/k,PageDown | Move down one row, page |
Left/h | Move left one column |
Right/l | Move right one column |
Home, End | Move to start/end of file |
number g | Move to line $number |
f | Move to end and auto-scroll as new rows come in |
/, ? | Search, reverse-search for string |
n, N | Jump to next, previous match |
q/Esc | Quit |
Comparison to other tools
Tool | Functionality | Filetypes | Loads whole file into memory | Streaming |
---|---|---|---|---|
tass | ⭐ Viewing data, basic searching | CSV/TSV, parquet | no 😌 | ✔️ |
csvlens | ⭐ Similar to tass | CSV/TSV | no 😌 | ✔️ |
VisiData | ⭐⭐ Summary stats, plots, etc. | CSV/TSV, parquet, JSON, ... | yes 😱 | ✔️ |
Excel/Calc/Numbers/Google Sheets | ⭐⭐⭐ It's a spreadsheet! | CSV/TSV, xls, ods, ... | yes 😱 | |
Pandas/Polars/DataFrame.jl | ⭐⭐⭐ It's a dataframe library! | CSV/TSV, parquet, ... | no 😌 |
For manipulating data, my advice is to use a spreadsheet (for small datasets) or dataframe library (for larger datasets). Sometimes you just want to quickly inspect the contents of a file though, and that's what tass is for.
Tips & tricks
Here are some more tips for working with large CSV files:
- If you want to see summary statistics but don't care about the underlying data itself, you can still use VisiData/Excel/etc.: just downsample it first. This will reduce the precision of your stats and plots, but not the overall shape (probably). xsv has a subcommand that can do this for you.
- If you want exact answers to complex questions, use a dataframe library. Alternatively, consider dumping your CSV into a sqlite database and working with that instead.
- For ad-hoc computations on CSV files, take a look at frawk - it's really nice.
Dependencies
~33–50MB
~1M SLoC