more в Linux: Как легко просматривать большие файлы в терминале
Вы когда-нибудь пытались открыть в терминале огромный лог-файл и наблюдали, как текст бесконечно пролетает перед глазами? Знакомая ситуация, не правда ли? Есть простое и элегантное решение, встроенное прямо в сердце вашей системы.
Команда `more` — ваш надежный помощник для постраничного просмотра. Она останавливает вывод после каждого экрана, показывая вам лишь ту порцию текста, которую вы можете усвоить. Больше не нужно судорожно скроллить или пытаться поймать взглядом нужную строку!
Вы узнаете, как заставить `more` показывать файл не с начала, а с конкретной строки, которую вы укажете. Мы разберем, как просматривать сразу несколько файлов подряд и как использовать команду в связке с другими утилитами для мощного анализа данных.
Готовы ли вы к тому, что прямо из `more` можно мгновенно перейти в текстовый редактор? Или что можно искать нужные фразы, не выходя из просмотра? Мы покажем все эти скрытые возможности.
Этот инструмент — фундамент, на котором строятся более сложные навыки работы в командной строке. Освоив его, вы сделаете первый шаг к уверенному управлению любыми текстовыми данными.
Хотите перестать тонуть в тексте и начать им управлять? Тогда читайте дальше, и мы проведем вас от основ к продвинутым трюкам, которые сэкономят вам часы работы.
Утилита more предназначена для постраничного просмотра файлов в терминале Linux. Своим названием она обязана надписи more (в русскоязычном варианте — дальше), появляющейся внизу каждой страницы.
Команда more linux — одна из самых примитивных команд для работы с текстом. Её ближайшая родственница — команда less — обладает куда большим набором опций и дополнительных возможностей. Давайте разберемся с её синтаксисом и примерами использования.
Содержание статьи
Синтаксис и опции more
В эмуляторе терминала Linux команда записывается так:
$ more опции файл
Список опций команды:
- -d — вывод информации в конце страницы о клавишах, использующихся для продолжения работы, завершения её или получения инструкций;
- -l — игнорирование в тексте символа разрыва страницы;
- -f — подсчёт числа логических строк вместо экранных;
- -p — очистка экрана терминала для того, чтобы пользователю не пришлось пользоваться прокруткой перед выводом следующей порции текста;
- -c — устранение потребности в прокрутке (как и -p) — отображение текста, начиная с верха экрана, и стирание при этом предыдущего вывода построчно;
- -s — замена нескольких пустых строк, расположенных подряд, одной пустой строкой;
- -u — удаление подчёркивания;
- -n — отображение n-го количества строк;
- +n — отображение текста, начиная со строки с номером n;
- +/строка — поиск в файле указанной строки и начало вывода текста именно с неё;
- --help — вызов справки;
- -v (--version) — вывод на экран текущей версии утилиты.
Также у команды more есть собственные горячие клавиши и интерактивные команды:
- h (?) — помощь (вывод информации только об интерактивных командах);
- ПРОБЕЛ — отображение следующей порции текста (по умолчанию количество строк зависит от текущего размера окна терминала);
- z — то же, что и ПРОБЕЛ;
- ENTER — вывод текста построчно (шаг команды — одна строка);
- d (^D) — прокрутка текста на количество строк, соответствующее размеру терминала;
- q (Q) — выход из утилиты;
- s — переход на одну строку вперёд;
- f — переход на одну экранную страницу вперёд;
- b (^B) — переход на одну экранную страницу назад;
- ' — возвращение к месту начала поиска;
- = — отображение текущего количества строк;
- /pattern — поиск с использованием регулярных выражений;
- n — поиск слов и фраз, соответствующих последнему использованному регулярному выражению;
- !command (:command) — выполнение команды в субоболочке;
- v — открытие файла в текстовом редакторе, назначенном по умолчанию, а если таковой не найден, использование консольного текстового редактора для открытия файла;
- ^L — удаление с экрана всего, кроме содержимого файла;
- :n — переход к следующему файлу;
- :p — переход к предыдущему файлу;
- :f — вывод названия текущего файла и количества строк в нём;
- . - повторное выполнение предыдущей команды.
Примеры использования more
Для того, чтобы просмотреть текст из файла, применяется команда:
more example-file-for-more-command.txt
Также в команде можно перечислить несколько имён файлов одно за другим, разделяя их пробелом. Содержимое этих файлов будет выведено в том же порядке. Пример:
more abc1.txt dfg2.txt
Если файл находится не в текущей директории, нужно указывать его полный адрес.
Порой необходимо вывести на экран не весь текст, а только его часть. Для таких случаев предусмотрены опции - (минус) и + (плюс), рядом с которыми указывается число строк. К примеру, чтобы увидеть содержимое файла, начиная с 8-й строки, следует добавить к команде опцию +8, а чтобы команда выводила результат, состоящий максимум из 5-ти строк, опцию -5:
more +8 -5 example-file-for-more-command.txt
По умолчанию команда more Linux считает строкой именно экранную строку — количество символов, которое помещается в один ряд по ширине окна. Для выполнения счёта в логических строках (при наборе текста они разделяются нажатием Enter), используется опция -f. Пример:
more -f +8 -5 example-file-for-more-command.txt
Впрочем, more умеет работать не только с текстовыми файлами — в неё можно перенаправлять вывод других команд (конвейеризация). Первой указывается основная команда, второй — more с требуемыми опциями. Команды обязательно разделяются вертикальной чертой. Пример:
locate bin | more -10
Когда команда вывела часть текста и бездействует в ожидании дальнейших действий пользователя можно выполнять интерактивные команды. Они нужны для управления выводом.
Например, для того, чтобы узнать номер текущей строки, следует нажать клавишу =, а чтобы просмотреть файл в текстовом редакторе — клавишу v.
Следует заметить, что не все интерактивные команды могут быть выполнены, если в утилиту перенаправлен вывод другой команды. Открытие текстового редактора, как и переход на одну страницу назад (b или ^B) работает только при просмотре текстовых файлов.
Для того, чтобы получить список всех интерактивных команд, следует нажать клавишу h.
Выводы
Эта вполне подходит для выполнения наиболее тривиальных задач при просмотра текста. У неё простой синтаксис, мало опций и небольшое количество дополнительных возможностей для управления выводом, однако, иногда и этого набора более чем достаточно.