Как перестать страдать при просмотре огромных CSV в терминале

15 фев 2026
3,934
71
11
2 месяца

Знакомая ситуация: вам прислали лог-файл или выгрузку из базы данных на пару сотен мегабайт в формате CSV. Вы по привычке вводите cat file.csv, и терминал превращается в бесконечную "матрицу" из слипшихся данных. Пробуете less — уже лучше, но колонки все равно едут, заголовков не видно, а найти нужную ячейку в этом месиве текста — тот еще квест.

Конечно, можно открыть Excel или Google Таблицы, но это долго, тяжело для системы и вообще «не по-хакерски». Именно для таких случаев разработчик под ником YS-L создал csvlens — инструмент, который делает просмотр CSV в консоли таким же удобным, как чтение кода в продвинутом редакторе.

Demo

Что такое csvlens и почему это не просто еще один просмотрщик

Если вкратце, csvlens — это командная утилита, написанная на Rust, которая ведет себя как классический less, но с глубоким пониманием структуры табличных данных. Она не просто выводит текст, а отрисовывает его в виде аккуратной таблицы, где колонки выровнены, а навигация интуитивно понятна любому, кто хоть раз пользовался Vim или обычным терминальным пейджером.

Главная прелесть в том, что инструмент невероятно быстрый. Благодаря Rust, он "переваривает" огромные файлы практически мгновенно, не заставляя вас ждать, пока распарсится каждая строчка.

Реклама

Пять фишек, которые спасут ваш рабочий день

1. Навигация в стиле Vim

Если ваши пальцы привыкли к hjkl, вы почувствуете себя как дома. Вы можете перемещаться не только вверх-вниз, но и вправо-влево по колонкам. Хотите прыгнуть в самый конец? Жмите G. Нужно перейти на конкретную строку? Вводите номер и G. Это освобождает от необходимости бешено крутить колесико мыши.

2. Умная фильтрация и поиск

В csvlens встроен мощный поиск по регулярным выражениям. Но самое крутое — это фильтры:

  • Нажмите &, введите регулярку, и вуаля — в таблице остались только те строки, которые подходят под условие.
  • Нажмите *, и вы сможете отфильтровать только нужные колонки. Это превращает просмотрщик в своего рода интерактивный grep, адаптированный под таблицы.

3. Работа с колонками "на лету"

Бывало ли так, что первая колонка (например, ID или дата) нужна вам перед глазами постоянно, а данных так много, что при скролле вправо она исчезает? В csvlens можно "заморозить" любое количество левых колонок клавишей f (например, f2 заморозит первые две).

Также можно менять ширину колонок кнопками < и >, или сортировать данные по выбранному столбцу (клавиша J). Инструмент даже поддерживает "естественную сортировку" (Ctrl + j), чтобы file2 шел перед file10.

4. Выделение и экспорт ячеек

Часто нам нужно не просто посмотреть на данные, а вытащить конкретное значение. В режиме выбора ячеек (переключается через TAB) вы можете просто нажать Enter на нужной ячейке, и csvlens завершит работу, отправив содержимое этой ячейки в stdout. Это идеально подходит для использования утилиты внутри bash-скриптов.

5. Интеграция в пайплайны

Проект отлично работает с конвейерами (pipes). Например, вы делаете запрос к API, который возвращает CSV, и сразу пробрасываете его в просмотрщик:

curl -s https://api.example.com/data.csv | csvlens

Никаких промежуточных файлов — данные сразу перед вами в удобном виде.

Техническая сторона вопроса

Инструмент написан на Rust, что гарантирует безопасность памяти и высокую производительность. Интересно, что csvlens можно использовать не только как самостоятельную утилиту, но и как библиотеку для ваших собственных проектов на Rust. Например, популярный тулкит для работы с данными qsv уже использует его под капотом для реализации команды lens.

Для тех, кто ценит эстетику, есть флаг --color-columns (или --colorful), который раскрашивает каждый столбец в свой цвет, что значительно упрощает чтение широких таблиц.

Кому это пригодится?

В моей практике csvlens стал незаменимым в трех случаях:

  1. Data Science и аналитика: Когда нужно быстро взглянуть на "сырой" датасет перед тем, как грузить его в Pandas или SQL.
  2. DevOps и системное администрирование: Разбор логов в формате CSV или TSV (утилита умеет автоопределять разделители через -d auto).
  3. Backend разработка: Проверка дампов таблиц или экспортных файлов прямо на сервере через SSH.

Как установить и начать пользоваться

Установка максимально простая для любой ОС:

  • macOS: brew install csvlens
  • Windows: winget install --id YS-L.csvlens
  • Linux (Arch): pacman -S csvlens
  • Rust разработчикам: cargo install csvlens

После установки просто введите csvlens путь_к_файлу.csv. Если первая строка вашего файла — это не заголовки, добавьте флаг --no-headers.

csvlens — это тот самый "маленький, но гордый" инструмент, который делает одну вещь, но делает ее превосходно. Он не пытается заменить собой полноценные базы данных или Excel, но он закрывает огромную брешь в удобстве работы с данными внутри терминала. Если вы часто работаете с CSV, попробуйте этот инструмент — ваши глаза и нервы скажут вам спасибо.

Кстати, проект активно развивается, так что если вам не хватает какой-то специфической фичи, заглядывайте в репозиторий на GitHub — сообщество там довольно отзывчивое.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.