Как легко читать большие файлы в Linux

Хотите просмотреть огромный файл журналов, текстовый файл или набор данных? Вы не одиноки. Чтение больших файлов в Linux может быть сложной задачей, когда вы хотите просмотреть и управлять содержимым, не перегружая ресурсы вашей системы. Однако есть несколько способов, которые вы можете использовать для чтения больших файлов в Linux, такие как использование команды less, Vim или разбивка документа на меньшие части и другие.
В этой статье мы узнаем, как читать большие файлы или находить конкретную информацию в Linux, используя различные методы.
Содержание
- Использование команды Less
- Разделение файла с помощью команды Split
- Использование Midnight Commander
- Использование Klogg
- Чтение больших файлов с помощью текстового редактора
- Поиск по файлу с помощью команды Grep
- Использование команд Head и Tail
Использование команды Less
Ищете легкий инструмент для Linux для просмотра содержимого больших текстовых файлов или выполнения быстрых поисков? Не ищите дальше, чем команда less.
Мне нравится эта утилита, потому что, в отличие от обычных текстовых редакторов, она позволяет вам просматривать файлы по одной странице за раз, не загружая весь файл в память. Это ускоряет процесс, особенно для больших файлов, и помогает вам легко просматривать длинные документы или журналы.
Чтобы использовать, просто введите less, за которым следует имя файла:
less имяфайла.txtЭто откроет интерфейс less, где вы можете прокручивать файл построчно с помощью стрелок или искать определенные термины, нажав / и введя свой запрос.
Вы также можете использовать less, чтобы читать выходные данные других команд, используя оператор конвейера. Например, чтобы прочитать и отобразить выходные данные команды ls, используйте:
ls -l | less
Более того, команда less имеет несколько параметров для настройки своего поведения. Вы можете комбинировать эти параметры, чтобы точно настроить работу less.
Например, вы можете использовать параметр -p с less, чтобы искать конкретный шаблон:
ls -l | less -p "пример"
Эта команда открывает выходные данные и переходит к первому вхождению слова пример.
Вы также можете отображать номера строк вместе с содержимым файла, используя параметр -N:
ls -l | less -N
Разделение файла с помощью команды Split
Иногда разбитие большого файла на меньшие части — это лучший подход, особенно когда вы хотите обработать или прочитать файл в управляемых разделах. Например, я разбиваю файл на части, когда его размер превышает 1 ГБ или когда он содержит более 100 миллионов строк.
Вы можете разбивать файлы по размеру или по количеству строк. Если вы работаете с текстом, лучше всего разбивать по строкам, чтобы избежать разбиения строк или слов пополам.
Например, чтобы разбить файл на основе заданного количества строк, выполните эту команду:
split -l 10000 samplefile.txt part_
В этом примере файл “samplefile.txt” разбивается на несколько файлов, каждый из которых содержит 10 000 строк. Результирующие файлы будут названы “part_aa”, “part_ab” и так далее. Теперь вы можете открывать и читать меньшие части файла, не беспокоясь об использовании памяти или замедлении системы.
Если вы хотите разбить большие файлы по размеру, например, на 100 МБ, вы можете выполнить эту команду:
split -b 100M samplefile.txt part_Использование Midnight Commander
Midnight Commander (MC) — это двухпанельный текстовый файловый менеджер, который предоставляет интуитивно понятный визуальный интерфейс для навигации по каталогам и файлам.
MC позволяет вам просматривать файлы напрямую в интерфейсе, что позволяет быстро прокручивать большие журналы или данные, не загружая весь файл в память. Мне нравится MC за его плавный и эффективный способ прокрутки по большим файлам.
Чтобы установить MC, просто выполните:
sudo apt install mcВы можете запустить его, введя mc в терминале. Оказавшись внутри, вы можете перейти к большому файлу, который хотите прочитать, и просмотреть его содержимое.

Использование Klogg
Klogg — это быстрый, с открытым исходным кодом графический просмотрщик журналов, который может с легкостью обрабатывать большие файлы. В отличие от других редакторов, которые загружают весь файл в память, он читает только части файла по мере необходимости, уменьшая использование памяти.
Klogg также предлагает возможности фильтрации и поиска в реальном времени, делая его легким для нахождения нужной информации без чрезмерного прокручивания.
Перед установкой Klogg вам сначала нужно создать каталог “/etc/apt/keyrings” и добавить в него GPG-ключ. GPG-ключ необходим для проверки репозитория пакетов Klogg.
Для создания каталога выполните:
sudo mkdir -p /etc/apt/keyringsТеперь добавьте GPG-ключ:
curl -sS https://klogg.filimonov.dev/klogg.gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/klogg.gpgЗатем вам нужно добавить репозиторий Klogg в вашу систему с помощью команды curl:
curl -sS https://klogg.filimonov.dev/deb/klogg.jammy.list | sudo tee /etc/apt/sources.list.d/klogg.listОбновите список пакетов:
sudo apt updateНаконец, вы можете установить Klogg с помощью:
sudo apt install klogg
После установки просто откройте файл через интерфейс и используйте его встроенные функции для поиска и навигации по содержимому.

Чтение больших файлов с помощью текстового редактора
Большинство текстовых редакторов не справляются с большими файлами, но редакторы, такие как Vim или Emacs, обрабатывают большие файлы лучше, чем стандартные редакторы, такие как Nano или Gedit.
Например, Vim имеет функции, которые позволяют вам быстро перемещаться по файлу и искать определенные термины, не загружая все в память одновременно. Однако поиск ограничен частями, которые уже загружены.
Чтобы открыть файл в Vim, выполните:
vim samplefile.txtПримечание: Хотя Vim может более эффективно управлять большими файлами, он все же не самый быстрый инструмент. Для быстрых просмотров обычно более эффективно использовать команду less или ранее упомянутые специализированные инструменты.
Поиск по файлу с помощью команды Grep
Если ваша цель — найти конкретную информацию в большом файле, попробуйте использовать команду grep. Она позволяет вам искать по файлам и выводить только те строки, которые соответствуют вашему поисковому запросу.
Когда вы направляете выходные данные команды в less, это временно — как только вы закроете less, выходные данные исчезнут. Если вы хотите сохранить выходные данные для последующего использования, перенаправьте их в файл и откройте с помощью командного инструмента, такого как less.
Например, чтобы распечатать каждую строку с словом “ERROR” из большого файла, выполните:
grep "Error" samplefile.txtВы можете уточнить свой поиск с помощью дополнительных параметров, таких как игнорирование регистра ( grep -i) или поиск только целых слов ( grep -w).
Перенаправление выходных данных в файл
Если вы хотите сохранить конкретную информацию для последующего использования, вы можете перенаправить выходные данные ваших команд в новый файл.
Например, вы можете искать строки, используя команду grep, и сохранять их в новый файл:
grep "Error" samplefile.txt > errors.logОператор > создает новый файл или перезаписывает его каждый раз. Однако если вы хотите добавить данные в уже существующий файл, используйте оператор >> вместо >.
Использование команд Head и Tail
Иногда, работая с большими файлами в Linux, вам может понадобиться просмотреть только начало или конец файла. Для этого вы можете использовать команды head или tail.
Вы можете отобразить первые 20 строк файла с помощью:
head -n 20 samplefile.txt
Аналогично, чтобы просмотреть последние 20 строк, выполните:
tail -n 20 samplefile.txtВ обоих случаях -n 20 указывает, что вы хотите увидеть только первые или последние 20 строк. Вы можете регулировать это число, чтобы отображать больше или меньше строк по мере необходимости. По умолчанию обе команды отображают 10 строк.
Вы также можете комбинировать tail и head, чтобы перемещаться по определенному разделу файла. Например, чтобы увидеть строки с 10 по 14 в 100-строчном файле, вычтите начальную строку минус один из общего количества строк (100 – 9 = 91). Затем используйте эту команду:
tail -n 91 samplefile.txt | head -n 5Это отобразит строки с 10 по 14. Вы можете подтвердить выходные данные, сравнив их с тем, что вы бы увидели, используя less.
Если вы контролируете файл, который постоянно обновляется, например, файл журнала, используйте tail -f, чтобы следить за изменениями в реальном времени.
Завершение
Будь то просмотр журналов, работа с наборами данных или просмотр большого текстового файла, эти методы делают процесс простым и эффективным. Вы также можете узнать, как находить большие файлы в Linux и как переносить их в другое место в терминале.