Хотите просмотреть огромный log-журнал или текстовый файл? Чтение больших файлов в Linux может быть сложной задачей, если вы хотите просматривать и управлять содержимым, не перегружая системные ресурсы. Однако существует несколько подходов к чтению больших файлов в Linux, например, использование команды less
, текстовый редактор Vim, разбиение документа на более мелкие фрагменты и другие.
В этой статье мы узнаем, как читать большие файлы или находить конкретную информацию в Linux, используя различные методы.
Использование команды Less
Ищете легкий инструмент Linux для просмотра содержимого больших текстовых файлов или быстрого поиска? Обратите внимание на команду less
.
Мне нравится эта утилита, потому что, в отличие от обычных текстовых редакторов, она позволяет просматривать файлы по одной странице за раз, не загружая весь файл в память. Это ускоряет работу, особенно с большими файлами, и помогает легко просматривать длинные документы или журналы.
Чтобы воспользоваться ею, просто наберите less
, а затем имя файла:
less filename.txt
Откроется интерфейс less, в котором вы можете прокручивать файл построчно с помощью клавиш со стрелками или искать конкретные термины, нажимая /, а затем свой запрос.
Вы также можете использовать less
для чтения выводов других команд с помощью оператора pipeline. Например, чтобы прочитать и отобразить вывод команды ls
, используйте:
ls -l | less

Кроме того, у команды less
есть несколько опций, позволяющих настроить ее поведение. Вы можете комбинировать эти параметры, чтобы точно настроить работу less
.
Например, вы можете использовать опцию -p
вместе с less
для поиска определенного шаблона:
ls -l | less -p "sample"

Эта команда открывает вывод и переходит к первому вхождению слова sample .
Вы также можете отобразить номера строк рядом с содержимым файла, используя опцию -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 – это быстрый GUI-просмотрщик логов с открытым исходным кодом, который легко справляется с большими файлами. В отличие от других редакторов, которые загружают весь файл в память, 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 и как переместить их в другое место в терминале.
Комментарии (0)