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

Что такое 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 стал незаменимым в трех случаях:
- Data Science и аналитика: Когда нужно быстро взглянуть на "сырой" датасет перед тем, как грузить его в Pandas или SQL.
- DevOps и системное администрирование: Разбор логов в формате CSV или TSV (утилита умеет автоопределять разделители через
-d auto). - 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 — сообщество там довольно отзывчивое.
