csvgrep
csvgrep
TLDR
Find rows that have a certain string in column 1
Find rows in which columns 3 or 4 match a certain regular expression
Find rows in which the "name" column does NOT include the string "John Doe"
DESCRIPTION
usage: csvgrep [-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] [-m PATTERN] [-r REGEX] [-f MATCHFILE] [-i] [-a] [FILE]
Search CSV files. Like the Unix "grep" 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
- -d DELIMITER, --delimiter DELIMITER
-
Delimiting character of the input CSV file.
- -t, --tabs
-
Specify that the input CSV file is delimited with tabs. Overrides "-d".
- -q QUOTECHAR, --quotechar QUOTECHAR
-
Character used to quote strings in the input CSV file.
- -u {0,1,2,3}, --quoting {0,1,2,3}
-
Quoting style used in the input CSV file. 0 = Quote Minimal, 1 = Quote All, 2 = Quote Non-numeric, 3 = Quote None.
- -b, --no-doublequote
-
Whether or not double quotes are doubled in the input CSV file.
- -p ESCAPECHAR, --escapechar ESCAPECHAR
-
Character used to escape the delimiter if --quoting 3 ("Quote None") is specified and to escape the QUOTECHAR if --no-doublequote is specified.
- -z FIELD_SIZE_LIMIT, --maxfieldsize FIELD_SIZE_LIMIT
-
Maximum length of a single field in the input CSV file.
- -e ENCODING, --encoding ENCODING
-
Specify the encoding of the input CSV file.
- -S, --skipinitialspace
-
Ignore whitespace immediately following the delimiter.
- -H, --no-header-row
-
Specify that the input CSV file has no header row. Will create default headers (a,b,c,...).
- -K SKIP_LINES, --skip-lines SKIP_LINES
-
Specify the number of initial lines to skip before the header row (e.g. comments, copyright notices, empty rows).
- -v, --verbose
-
Print detailed tracebacks when errors occur.
- -l, --linenumbers
-
Insert a column of line numbers at the front of the output. Useful when piping to grep or as a simple primary key.
- --zero
-
When interpreting or displaying column numbers, use zero-based numbering instead of the default 1-based numbering.
- -V, --version
-
Display version information 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 searched, e.g. "1,id,3-5".
- -m PATTERN, --match PATTERN
-
The string to search for.
- -r REGEX, --regex REGEX
-
If specified, must be followed by a regular expression which will be tested against the specified columns.
- -f MATCHFILE, --file MATCHFILE
-
If specified, must be the path to a file. For each tested row, if any line in the file (stripped of line separators) is an exact match for the cell value, the row will pass.
- -i, --invert-match
-
If specified, select non-matching instead of matching rows.
- -a, --any-match
-
If specified, select rows where any column matches instead of all columns.
SEE ALSO
The full documentation for csvgrep is maintained as a Texinfo manual. If the info and csvgrep programs are properly installed at your site, the command info csvgrep should give you access to the complete manual.