csvcut - Man Page
csvcut Documentation
Examples (TL;DR)
- Print indices and names of all columns:
csvcut -n data.csv
- Extract the first and third columns:
csvcut -c 1,3 data.csv
- Extract all columns except the fourth one:
csvcut -C 4 data.csv
- Extract the columns named "id" and "first name" (in that order):
csvcut -c id,"first name" data.csv
Description
Filters and truncates CSV files. Like the Unix “cut” command, but for tabular data:
usage: csvcut [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b] [-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-S] [-H] [-K SKIP_LINES] [-v] [-l] [--zero] [-V] [-n] [-c COLUMNS] [-C NOT_COLUMNS] [-x] [FILE] Filter and truncate CSV files. Like the Unix "cut" command, but for tabular data. positional arguments: FILE The CSV file to operate on. If omitted, will accept input as piped data via STDIN. optional arguments: -h, --help show this help message and exit -n, --names Display column names and indices from the input CSV and exit. -c COLUMNS, --columns COLUMNS A comma-separated list of column indices, names or ranges to be extracted, e.g. "1,id,3-5". Defaults to all columns. -C NOT_COLUMNS, --not-columns NOT_COLUMNS A comma-separated list of column indices, names or ranges to be excluded, e.g. "1,id,3-5". Defaults to no columns. -x, --delete-empty-rows After cutting, delete rows which are completely empty.
- See also: Arguments common to all tools.
- NOTE:
csvcut does not implement row filtering, for this you should pipe data to csvgrep.
- NOTE:
If a data row is longer than the header row, its additional columns are truncated. Use csvclean first to fix such rows.
Examples
Print columns
Print the indices and names of all columns:
$ csvcut -n examples/realdata/FY09_EDU_Recipients_by_State.csv 1: State Name 2: State Abbreviate 3: Code 4: Montgomery GI Bill-Active Duty 5: Montgomery GI Bill- Selective Reserve 6: Dependents' Educational Assistance 7: Reserve Educational Assistance Program 8: Post-Vietnam Era Veteran's Educational Assistance Program 9: TOTAL 10:
Print only the names of all columns, by removing the indices with the cut command:
$ csvcut -n examples/realdata/FY09_EDU_Recipients_by_State.csv | cut -c6- State Name State Abbreviate Code Montgomery GI Bill-Active Duty Montgomery GI Bill- Selective Reserve Dependents' Educational Assistance Reserve Educational Assistance Program Post-Vietnam Era Veteran's Educational Assistance Program TOTAL
Extract columns
Extract the first and third columns:
csvcut -c 1,3 examples/realdata/FY09_EDU_Recipients_by_State.csv
Extract columns named “TOTAL” and “State Name” (in that order):
csvcut -c TOTAL,"State Name" examples/realdata/FY09_EDU_Recipients_by_State.csv
Extract a column that may not exist in all files:
echo d, | csvjoin examples/dummy.csv - | csvcut -c d echo d, | csvjoin examples/join_no_header_row.csv - | csvcut -c d
Other
Add line numbers to a file, making no other changes:
csvcut -l examples/realdata/FY09_EDU_Recipients_by_State.csv
Display a column’s unique values:
csvcut -c 1 examples/realdata/FY09_EDU_Recipients_by_State.csv | sed 1d | sort | uniq
Or:
csvcut -c 1 examples/realdata/FY09_EDU_Recipients_by_State.csv | csvsql --query 'SELECT DISTINCT("State Name") FROM stdin'
Author
Christopher Groskopf and contributors
Copyright
2024, Christopher Groskopf and James McKinney
Info
Jun 22, 2024 2.0.0 csvkit