csvkit CSV command-line toolkit
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
in2csv <file.xlsx>
csvlook <file>
csvcut -n <file>
csvcut -c <cols> <file>
csvgrep -c <col> -m <text> <file>
csvsort -c <col> <file>
csvstat <file>
csvsql --query "<sql>" <file>
Concepts
- in2csv / sql2csv xlsx, json, db
- csvclean / csvcut fix, select
- csvgrep / csvsort / csvjoin filter, order, merge
- csvlook / csvstat / csvjson read or export
Input and format flags
-d <char>-t-e <enc>-H-IConvert in (in2csv, sql2csv)
in2csv <file.xlsx>
in2csv -n <file.xlsx>
in2csv --sheet "<name>"
<file.xlsx>
in2csv -f json <file>
in2csv -f ndjson <file>
cat <file.xlsx> | in2csv -f xlsx
sql2csv --db <url> --query
"<sql>"
Select and filter
csvcut -n <file>
csvcut -c <cols> <file>
csvcut -C <cols> <file>
csvgrep -c <col> -m <text> <file>
csvgrep -c <col> -r '<regex>'
<file>
csvgrep -c <col> -i -m <text>
<file>
csvgrep -a -r '<regex>' <file>
Sort and combine
csvsort -c <col> <file>
csvsort -r -c <col> <file>
csvjoin -c <col> <a> <b>
csvjoin --left -c <col> <a> <b>
csvstack <a> <b>
csvstack -g <x>,<y> <a> <b>
csvstack --filenames -n source *.csv
Inspect and summarize
csvlook <file>
csvstat <file>
csvstat -c <col> <file>
csvstat --count <file>
SQL
csvsql --query "<sql>" <file>
csvsql --query "<sql>" <a>
<b>
csvsql <file>
csvsql --db <url> --insert <file>
Output and cleanup
csvjson <file>
csvjson -i 2 <file>
csvformat -T <file>
csvformat -D '<char>' <file>
csvclean --length-mismatch <file>
csvclean --fill-short-rows <file>
Recipes
in2csv -n <report.xlsx>in2csv --sheet "Q3" <report.xlsx> > q3.csvcsvcut -c name,total q3.csv | csvlook
csvsort -r -c total <file> | head -n 11 | csvlook
csvgrep -c status -m open <file> \ | csvcut -c id,title \ | csvjson > open.json
csvstack --filenames -n month 2026-*.csv > all.csvcsvsql --query "select month, sum(total) from all group by month" all.csv | csvlook



