Поиск в linux less

Поиск в linux less

Команда less позволяет задействовать одноименную утилиту, предназначенную для постраничного вывода содержимого текстовых файлов значительного объема. Она похожа на команду more, но имеет больше функций, которые, тем не менее, могут потребоваться далеко не всем пользователям. Утилита особенно удобна для быстрого открытия текстовых файлов, так как не загружает их содержимое полностью.

Базовый синтаксис команды выглядит следующим образом:

$ less [параметры] имя-текстового-файла

Утилита поддерживает большое количество параметров, причем практически все из этих параметров являются узкоспециализированным и едва ли пригодятся большинству пользователей, а самыми востребованными из них являются параметр -N, позволяющий выводить номера строк, что очень удобно при чтении программного кода, параметр -X, позволяющий не очищать содержимое терминала после завершения работы утилиты, а также параметр -I, позволяющий осуществлять поиск в тексте без учета регистра символов. Утилита работает в интерактивном режиме и позволяет использовать команды для навигации по содержимому файла, поиска строк и управления работой утилиты:

Команда Назначение
Клавиша со стрелкой вниз, Enter, e, j Перемещение на одну строку к концу файла
Клавиша со стрелкой вверх, y, k Перемещение на одну строку к началу файла
Пробел, f Перемещение на одну страницу к концу файла
b Перемещение на одну страницу к началу файла
/текст Поиск текста по направлению к концу файла
?текст Поиск текста по направлению к началу файла
n Повторение предыдущего поиска
N Повторение предыдущего поиска в обратном направлении
Home, g Переход к первой строке файла
Ng
Переход к строке файла номер N
End, G Переход к последней строке файла
Home, p Переход к началу файла
Np
Переход к позиции файла в N процентов
q Завершение работы утилиты
h Вывод информации о доступных командах

Команды, не представленные одной клавишей, вводятся после имени файла или двоеточия в последней строке в нижней части экрана.

Примеры использования

Отображение содержимого текстового файла

Для отображения содержимого тестового файла достаточно передать утилите имя этого файла без каких-либо параметров:

$ less oui.txt
OUI/MA-L Organization
company_id Organization
Address

00-22-72 (hex) American Micro-Fuel Device Corp.
002272 (base 16) American Micro-Fuel Device Corp.
2181 Buchanan Loop
Ferndale WA 98248
US

00-D0-EF (hex) IGT
00D0EF (base 16) IGT
9295 PROTOTYPE DRIVE
RENO NV 89511
US

08-61-95 (hex) Rockwell Automation
086195 (base 16) Rockwell Automation
1 Allen-Bradley Dr.
Mayfield Heights OH 44124-6118
oui.txt

Для прокрутки содержимого удобнее всего пользоваться клавишами со стрелками, пробелом, а также клавишами Home и End. Для закрытия файла может использоваться клавиша q.

Поиск в текстовом файле

Для поиска в текстовом файле нужно открыть этот файл и воспользоваться командами /текст или ?текст. Например:

Читайте также:  Установка linux настройка bios

San Francisco CA 94107
US

50-EC-50 (hex) Beijing Xiaomi Mobile Software Co., Ltd
50EC50 (base 16) Beijing Xiaomi Mobile Software Co., Ltd
The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District
Beijing Beijing 100085
CN

60-61-DF (hex) Z-meta Research LLC
6061DF (base 16) Z-meta Research LLC
8365 Quay Drive
Arvada CO 80003
US

70-57-BF (hex) New H3C Technologies Co., Ltd
7057BF (base 16) New H3C Technologies Co., Ltd
466 Changhe Road, Binjiang District
Hangzhou Zhejiang 310052
CN

Если вы хотите осуществлять поиск без учета регистра, следует открыть файл с использованием параметра -I:

$ less -I oui.txt
F4-BD-9E (hex) Cisco Systems, Inc
F4BD9E (base 16) Cisco Systems, Inc
80 West Tasman Drive
San Jose CA 94568
US

58-85-E9 (hex) Realme Chongqing MobileTelecommunications Corp Ltd
5885E9 (base 16) Realme Chongqing MobileTelecommunications Corp Ltd
No.24 Nichang Boulevard, Huixing Block, Yubei District, Chongqing.
Chongqing China 401120
CN

BC-23-92 (hex) BYD Precision Manufacture Company Ltd.
BC2392 (base 16) BYD Precision Manufacture Company Ltd.
No.3001, Bao He Road, Baolong Industrial, Longgang Street,Longgang Zone, Shenzhen
shenzhen 518116
CN

94-E6-F7 (hex) Intel Corporate
/cisco

Как видите, результаты поиска отличаются.

Чтение программного кода

Для чтения программного кода удобнее использовать режим вывода номеров строк. Для этого следует использовать параметр -N.

$ less -N usals.c
1 #include
2 #include
3
4 float deg_to_rad(float degrees)
5 {
6 return degrees * M_PI / 180.0;
7 }
8
9 float rad_to_deg(float radians)
10 {
11 return radians * 180.0 / M_PI;
12 }
13
14 /*float usals(float sitelong, float sitelat, float satlong)
15 {
16 float cangle, elevation, intangle, satazimuth, satelevation, azimuth;
17
18 sitelong = deg_to_rad(sitelong);
19 sitelat = deg_to_rad(sitelat);
20 satlong = deg_to_rad(sitelong);
21
22 cangle = cos(sitelong)*cos(satlong-sitelong);
usals.c

Навигация по файлу будет осуществляться аналогичным образом. Для перехода к строке с заданными номером следует использовать команду Ng, то есть, к примеру, для перехода к десятой строке следует использовать команду 10g.

Источник

Команда less в Linux

Команда less является пейджером терминала Linux, показывая содержимое файла по одному экрану за раз, что очень удобно при работе с большим текстовым файлом.

Примеры использования команды less в Linux

  • Возможности утилиты
  • Синтаксис
  • Опции
  • Навигация по текстовому файлу
  • Использование команды less в Linux
    • Открытие текстового файла без параметров
    • Вывод номеров строк
    • Поиск строки
    • Открытие файла с поиском по шаблону
    • Удаление нескольких пустых строк
    • Открытие нескольких файлов
    • Метки в тексте
    • Сохранение контента на экране после выхода
    • Просмотр конвейерного ввода

    Возможности утилиты

    Утилита загружает не весь большой файл, а обращается к нему страница за страницей, что обеспечивает очень высокую скорость загрузки.

    Интерактивные функции, которыми оснащена команда less позволяют пользователям перемещаться вперед и назад по файлу. Это делает утилиту более продвинутой и универсальной, нежели такие терминальные пейджеры как more и most .

    Синтаксис

    Опции

    -E Автоматическое завершение работы по достижении конца файла -f Принудительное открывание нестандартных файлов -F Выход less , если весь файл может отображаться на первом экране -g Выделение строки, найденной последней с помощью поиска. По умолчанию выделяются все строки, соответствующие последней команде поиска -G Удаление всех выделений из строк, найденных с помощью поиска -i Игнорирование чувствительности к регистру во время поиска -J Отображение столбца состояния в левой части экрана. Столбец состояния показывает строки, соответствующие текущему поиску, и любые строки, отмеченные с помощью опций -m или -M -m Инструктирует утилиту подсказывать подробно (аналогично more ), показывая процент в файле. По умолчанию запрашивается двоеточие -M Указывает утилите выполнять ещё более подробный вывод -n Удаляет номера строк с экрана -N Отображает номера строк в начале каждой строки -o [file_name] Заставляет команду копировать свой ввод в указанный файл. Этот параметр применяется только в том случае, если входной файл представляет собой канал | , а не обычный файл. Для существующих файлов команда запрашивает подтверждение перед перезаписью файла -p [pattern] Даёт указание команде начать с первого появления указанного шаблона во входном файле -Q Обеспечивает бесшумную работу, отключающую звонок терминала -s Объединяет последовательные пустые строки в одну пустую строку -X Отключает очистку экрана после выхода из less -z [n] Изменяет размер окна прокрутки по умолчанию на указанный

    Команда less поддерживает сочетания клавиш, облегчающие навигацию по тексту, особенно при чтении больших файлов. В следующей таблице представлены наиболее часто используемые сочетания клавиш.

    Клавиатурные команды

    Ярлыки Действие
    Down Arrow, Enter, e, j На одну строку вперед
    Up Arrow, y, k На одну строку назад
    Space bar, Page Down На одну страницу вперед
    Page Up, b На одну страницу назад
    Right Arrow Прокрутить вправо
    Left Arrow Прокрутить влево
    Home, g Перейти к началу файла
    End, G Перейти в конец файла
    /[string] Поиск указанной строки вперед
    ?[string] Поиск указанной строки в обратном направлении
    n Следующее совпадение во время поиска
    N Предыдущее совпадение во время поиска
    q Выход

    Использование команды less в Linux

    Открытие текстового файла без параметров

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

    oleg@mobile:$ less /etc/pacman.d/mirrorlist

    В нижнем левом углу экрана отображается имя файла и путь к нему. Для перемещения вперед, назад или поиска определённых строк в файле используются клавиши навигации.

    Вывод номеров строк

    В этом случае используется опция -N . Отображение номеров строк полезно для проверки кода, так как облегчает поиск конкретной проблемы.

    oleg@mobile:$ less -N /etc/pacman.d/mirrorlist

    Теперь каждая строка в файле пронумерована.

    Поиск строки

    Команда less позволяет осуществлять поиск строки в открытом файле.

    Запускаем поиск вперед, нажав / и введя необходимое слово или его фрагмент, например, land:

    oleg@mobile:$ less /etc/pacman.d/mirrorlist

    Нажимаем клавишу Enter:

    На экране видно, что фрагмент land в первом же слове, включающем его подсвечен.

    По умолчанию при поиске команда less учитывает регистр. Для игнорирования чувствительности к регистру используется опция -I или нажимается клавиша I при отработке команды.

    Сейчас мы находимся на первом экране, где фрагмент land подсвечен в слове Finland. Для перехода к следующему результату надо нажать клавишу n, а для перехода к предыдущему — N.

    Нажимаем клавишу n:

    Результат — Iceland.

    Открытие файла с поиском по шаблону

    Для этого используется опция -p , позволяющая открыть текстовый файл на странице, содержащей первый элемент, соответствующий указанному шаблону. Повторяем поиск land, но с использованием опции -p :

    oleg@mobile:$ less -pland /etc/pacman.d/mirrorlist

    Поиск чувствителен к регистру. При указании шаблона убедитесь, что между параметром и шаблоном нет пробелов.

    Удаление нескольких пустых строк

    Опция -s позволяет сжимать несколько пустых строк из текстового файла в одну пустую строку, что даёт команде less возможность отображать больше содержимого на каждом экране файла.

    Например, в следующем файле есть несколько пустых строк между строками текста:

    oleg@mobile:~:$ less ~/webprojects/linuxcookbook.ru/articles/komanda-mount-linux-2

    Запуск утилиты с параметром -s сожмёт пустые строки в одну:

    oleg@mobile:~:$ less -s ~/webprojects/linuxcookbook.ru/articles/komanda-mount-linux-2

    Открытие нескольких файлов

    Команда less позволяет открывать одновременно несколько файлов без потери текущей позиции в этих файлах. Для этого указываются имена файлов одно за другим:

    oleg@mobile:~/webprojects/linuxcookbook.ru/articles:$ less yay-arch-linux ekrannaya-klaviatura-onboard

    Команда открыла все указанные файлы и показывает внизу экрана, какой файл вы сейчас просматриваете.

    Для перехода к следующему файлу надо ввести :, а затем — n:

    Вернуться к предыдущему файлу можно введя : и p:

    Метки в тексте

    Для того чтобы отметить интересный раздел или фрагмент в файле и быстро вернуться к нему позже, используются метки (флаги).

    Добавим метку, выделив текст и нажав клавишу m, а затем любую букву по выбору. Для добавления большего количества меток используются разные буквы.

    oleg@mobile:~/webprojects/linuxcookbook.ru/articles:$ less yay-arch-linux

    Выло выделено PKGBUILD и нажата клавиша p. Теперь в следующий раз можно будет вернуться к фрагменту, содержащему PKGBUILD введя «, а затем — p.

    Сохранение контента на экране после выхода

    После выхода из команды окно терминала очищается, удаляя вывод файла. Для того чтобы оставить содержимое файла в терминале после выхода используется опция -X .

    oleg@mobile:~/webprojects/linuxcookbook.ru/articles:$ less -X yay-arch-linux

    Теперь содержимое файла останется на терминале после выхода из less .

    Просмотр конвейерного ввода

    При получении выходных данных командой less можно использовать pipeline для обработки вывода других команд. Это особенно полезно, когда выходные данные длинные и загромождают терминал.

    Например, команда dmesg отображает сообщения, связанные с ядром, а файл её журнала может быть довольно большим и перегружать терминал. Для упрощения навигации по файлу и лучшей читабельности можно направить вывод dmesg в less . При указании параметра +F процесс будет автоматизирован и команда всегда будет показывать новые данные по мере их поступления:

    oleg@mobile:~:$ sudo dmesg | less +F

    Заключение

    Теперь вы знаете, как использовать команду less в Linux. Несмотря на существование и иных терминальных пейджеров, таких как most и more , ээта утилита может быть лучшим выбором, так как этот мощный инструмент присутствует почти в каждой системе.

    Источник

Читайте также:  Горячая клавиша вызова терминала линукс
Оцените статью
Adblock
detector