csvlens

csvlens is a command line CSV file viewer. It is like less but made for CSV.

Usage

Run csvlens by providing the CSV filename:

csvlens <filename>

Pipe CSV data directly to csvlens:

<your commands producing some csv data> | csvlens

Key bindings

KeyAction
hjkl (or ← ↓ ↑→ )Scroll one row or column in the given direction
Ctrl + f (or Page Down)Scroll one window down
Ctrl + b (or Page Up)Scroll one window up
Ctrl + d (or d)Scroll half a window down
Ctrl + u (or u)Scroll half a window up
Ctrl + hScroll one window left
Ctrl + lScroll one window right
Ctrl + ←Scroll left to first column
Ctrl + →Scroll right to last column
G (or End)Go to bottom
g (or Home)Go to top
<n>GGo to line n
/<regex>Find content matching regex and highlight matches
n (in Find mode)Jump to next result
N (in Find mode)Jump to previous result
&<regex>Filter rows using regex (show only matches)
*<regex>Filter columns using regex (show only matches)
TABToggle between row, column or cell selection modes
>Increase selected column’s width
<Decrease selected column’s width
Shift + ↓ (or Shift + j)Sort rows or toggle sort direction by the selected column
# (in Cell mode)Find and highlight rows like the selected cell
@ (in Cell mode)Filter rows like the selected cell
yCopy the selected row or cell to clipboard
Enter (in Cell mode)Print the selected cell to stdout and exit
-SToggle line wrapping
-WToggle line wrapping by words
rReset to default view (clear all filters and custom column widths)
H (or ?)Display help
qExit

Optional parameters

  • -d <char>: Use this delimiter when parsing the CSV (e.g. csvlens file.csv -d '\t').

    Specify -d auto to auto-detect the delimiter.

  • -t, --tab-separated: Use tab as the delimiter (when specified, -d is ignored).

  • -i, --ignore-case: Ignore case when searching. This flag is ignored if any uppercase letters are present in the search string.

  • --no-headers: Do not interpret the first row as headers.

  • --columns <regex>: Use this regex to select columns to display by default.

  • --filter <regex>: Use this regex to filter rows to display by default.

  • --find <regex>: Use this regex to find and highlight matches by default.

  • --echo-column <column_name>: Print the value of this column at the selected row to stdout on Enter key and then exit.