ZSV(1)

πŸ“¦
version 1.3.0 Β· 2 versions
, in ubuntu stonking

✨ ZSV(1) ✨

okay bestie, welcome to zsv β€” the tabular data swiss-army knife πŸ’… it's a user command in section 1 of the manual (iykyk), and honestly? she's iconic.


🌸 NAME 🌸

zsv β€” tabular data swiss-army knife πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

zsv is a fast and extensible CLI utility for CSV data. she gets that speed using SIMD operations, efficient memory use, and other optimization techniques. no cap.

and that's not even all of it β€” she can also parse generic-delimited and fixed-width formats, plus multi-row-span headers. versatile queen πŸ‘‘


πŸ‘‘ USAGE πŸ‘‘

here's how you talk to her:

zsv version

display version info (and if applicable, extension info) 🌈

zsv (un)register [<extension_id>]

(un)register an extension

registration info is saved in zsv.ini, which lives in a directory determined like this: the ZSV_CONFIG_DIR environment variable value, if that's set; otherwise, /usr/local/etc. periodt πŸ’…

zsv help [<command>]
zsv <command> <options> <arguments>

run a command on data (details below, bestie, keep scrolling πŸ’–)

zsv <id>-<cmd> <options> <arguments>

invoke command cmd of extension id

zsv license [<extension_id>]
zsv thirdparty

view third-party licenses & acknowledgements 🫢


πŸŽ€ Options common to all commands except prop, rm and jq: πŸŽ€

heads up bestie: prop, rm and jq do NOT get these. everyone else does. πŸ’€
  • -L,--limit-rows <n> β€” limit processing to the given number of rows (and yes, that count includes any header row(s))
  • -c,--max-column-count <n> β€” set the maximum number of columns parsed per row. defaults to 1024
  • -r,--max-row-size <n> β€” set the minimum supported maximum row size. defaults to 64k
  • -B,--buff-size <n> β€” set internal buffer size. defaults to 256k
  • -t,--tab-delim β€” set column delimiter to tab
  • -O,--other-delim <char> β€” set column delimiter to the specified character
  • -q,--no-quote β€” turn off quote handling
  • -R,--skip-head <n> β€” skip the specified number of initial rows
  • -d,--header-row-span <n> β€” apply header depth (rowspan) of n
  • -u,--malformed-utf8-replacement <string> β€” replacement string (can be empty!) in case of malformed UTF8 input (default for the desc command is '?')
  • -S,--keep-blank-headers β€” disable the default behavior of ignoring leading blank rows
  • -0,--header-row <header> β€” insert the provided CSV as the first row (in position 0), e.g. --header-row 'col1,col2,"my col 3"'
  • -1,--apply-overwrites β€” automatically apply overwrites saved via the overwrite command
  • -v,--verbose β€” verbose output

πŸ“ Commands that parse CSV or other tabular data: πŸ“

  • select β€” extract rows/columns by name or position and perform other basic and 'cleanup' operations
  • echo β€” write tabular input to stdout with optional cell overwrites
  • overwrite β€” save, modify or apply overwrites
  • sql β€” run ad-hoc SQL
  • count β€” print the number of rows
  • desc β€” describe each column
  • pretty β€” pretty print for console display ✨
  • flatten β€” flatten a table consisting of N groups of data, each with 1 or more rows in the table, into a table of N rows
  • 2json β€” convert CSV or sqlite3 db table to json
  • 2tsv β€” convert to tab-delimited text
  • serialize β€” convert into 3-column format (id, column name, cell value)
  • stack β€” stack tables vertically, aligning columns with common names
  • compare β€” compare two or more tables and output differences

🌈 Other commands: 🌈

  • 2db β€” convert json to sqlite3 db
  • prop β€” save parsing options associated with a file that are subsequently applied by default when processing that file
  • rm β€” remove a file and its related cache
  • mv β€” rename (move) a file and/or its related cache
  • jq β€” run a jq filter on json input

πŸ’œ MAINTAINER πŸ’œ

Liquidaty <https://github.com/liquidaty/zsv> 🫢


⭐ LICENSE ⭐

MIT License


okay that's the whole vibe check bestie πŸ’– this page is for zsv version 1.3.0, dated February 2026, and it's living in the manual as ZSV(1). go parse something iconic, you got this πŸ‘‘πŸ¦‹

πŸ“¦ where this page comes from