Сервисы
Сервисы

csvview

tools

Быстрый интерактивный CSV-просмотрщик для терминала

csvview — TUI-приложение для работы с CSV-файлами больших размеров, написанное на C с использованием ncurses. Без Python, без Electron, без зависимостей — один бинарник, мгновенный запуск, минимальное потребление памяти. Работает по SSH на любом сервере.

Поддерживает файлы до 50 миллионов строк благодаря memory-mapped I/O и многопоточной обработке (до 8 потоков). Открывает CSV, TSV, PSV, NDJSON с автоопределением разделителя.

Установка

macOS через Homebrew:

$ brew tap daniil-khanin/csvview $ brew install csvview

Или из исходников:

$ git clone https://github.com/daniil-khanin/csvview.git $ cd csvview && make $ sudo make install # /usr/local/bin + man page

Быстрый старт

$ csvview data.csv # открыть CSV $ csvview data.tsv # TSV автодетект $ csvview --sep=\; data.csv # произвольный разделитель $ csvview # история файлов

При запуске без аргументов открывается история недавних файлов с информацией о размере, числе строк и столбцов.

Навигация

Перемещение по таблице — стрелками или в vim-стиле (h j k l). gg — начало файла, G — конец. Ctrl+G или :N — перейти к строке по номеру. PageUp/PageDown для постраничной прокрутки. z — заморозить столбцы слева.

Навигация работает плавно даже на файлах в миллионы строк — данные читаются через mmap напрямую с диска, без загрузки всего файла в память.

Поиск

Нажмите / и введите текст для поиска. Все совпадения подсвечиваются в таблице, строки с совпадениями помечаются * в гаттере. n / N — переход к следующему/предыдущему результату.

Фильтрация и сортировка

f — быстрый фильтр по текущему столбцу. Shift+F — продвинутый фильтр с выражениями:

revenue > 1000 AND status = paid date >= 2025-Q1 AND date <= 2025-Q4 category != test OR priority = high

Поддерживаются операторы =, !=, >, >=, <, <=, логика AND, OR, !. Даты можно фильтровать по месяцу (= 2025-01) или кварталу (= 2025-Q3).

Сортировка: [ — по возрастанию, ] — по убыванию. { / } — добавить уровень сортировки для многоуровневой сортировки.

Статистика столбцов

Нажмите d на любом столбце. Для числовых столбцов: sum, mean, median, mode, min/max, топ-10 значений и гистограмма распределения. Для дат: распределение по месяцам, кварталам, годам.

Дополнительно: p — перцентили (P1–P99, IQR, stddev), e — тренды (sparkline по 20 временным бакетам), f — полный список частот с навигацией и drill-down.

Корреляционная матрица (:corr) показывает Pearson r для всех числовых столбцов с цветовой кодировкой. Enter на ячейке — scatter plot двух столбцов.

Отчёт по выбросам (:outliers) находит строки с |z-score| выше порога. Enter — переход к строке, f — фильтр.

Графики

Нажмите g на числовом столбце для построения графика прямо в терминале. Типы: line, bar, dot. Графики рендерятся braille-символами Unicode — каждый символ терминала несёт 2×4 пикселя.

Scatter plot (:gsc) для визуализации зависимости двух столбцов с расчётом Pearson r. Dual Y axis (:g2y) для наложения двух метрик с разными масштабами. Donut chart (Ctrl+G на текстовом столбце) для частотного распределения. Box plot (:gbox) для сравнения распределений.

Все графики можно экспортировать в SVG командой :gsvg — готовый файл для печати или документации.

Сводные таблицы

Нажмите p для построения сводной таблицы. В окне настроек выберите:

  • Rows / Columns — столбцы для группировки по строкам и столбцам
  • Values — столбец для агрегации
  • Aggregation — SUM, AVG, COUNT, MIN, MAX, UNIQUE COUNT и их комбинации
  • Date grouping — Month, Quarter, Year, Century (для столбцов с датами)
  • Filter by — третье измерение (Report Filter)

Результат — интерактивная сводная таблица с навигацией, итогами и подсветкой текущей ячейки:

Show Values As (v) — переключение отображения: абсолютные значения → % от строки → % от столбца → % от общего итога → ранг → running total.

Report Filter (F) — popup с выбором значений третьего измерения. * отмечает выбранные значения, Space переключает. < / > — быстрое циклирование по одному значению.

Sparklines (S) — braille-график тренда рядом с каждой строкой. Transpose (T) — мгновенная смена строк и столбцов.

Graph (G) — split-screen: таблица слева, график справа. Space — закрепить серию, a — переключить ось, s — линейная/логарифмическая шкала.

Drill-down: нажмите Enter на ячейке сводной таблицы — откроется основная таблица, отфильтрованная по значениям строки и столбца этой ячейки.

Экспорт: :e — CSV, :em — Markdown, :eg — SVG графика. Фильтрация строк пивота: :ptop 10, :pbot 5, :pfilter >1000.

Редактирование

Enter — редактирование ячейки. u — undo (до 20 шагов). s — сохранить изменения в файл.

Управление столбцами: :cr name — переименовать, :cd name — удалить, :cal / :car name — добавить слева/справа, :dr N — удалить строку.

Вычисляемые столбцы (:cf) — добавление столбца с формулой:

:cf profit = revenue - cost :cf margin = round(profit / revenue * 100, 1) :cf status = if(margin > 20, "good", "low") :cf rank = rank(revenue)

Доступны функции: round, abs, floor, ceil, mod, pow, if, empty. Агрегаты: col_sum, col_avg, col_min, col_max, col_count, col_median, col_percentile, col_stddev, col_var, rank, pct.

Темы

10 цветовых тем: dark, light, tokyonight, nord, catppuccin, solarized_light, paper, turbovision, dracula, gruvbox. Выбор через :theme с live-preview или из командной строки --theme=name.

CLI-инструменты

csvview работает не только как интерактивный просмотрщик, но и как набор CLI-утилит:

$ csvview --cat a.csv b.csv # объединить CSV файлы $ csvview --split --by=region f.csv # разбить по значению столбца $ csvview --profile data.csv # отчёт по качеству данных $ csvview --dedup data.csv # удалить дубликаты

Проект с открытым исходным кодом, лицензия MIT. Репозиторий: github.com/daniil-khanin/csvview