Команда grep: мощный инструмент для поиска текста в Терминале

Материал из Home wiki
Версия от 12:29, 12 мая 2022; KOleg (обсуждение | вклад) (Новая страница: «Практически любой, у кого есть компьютер или кто с ним работает, знает сочетание клавиш Ct...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Практически любой, у кого есть компьютер или кто с ним работает, знает сочетание клавиш Ctrl + F для поиска текста. Буква «F» означает «Найти», «найти» на английском языке и может использоваться, например, для поиска текста на веб-странице. Этот ярлык также доступен во многих приложениях, есть программы, которые используют букву «B» для поиска, но эти ярлыки работают, только если мы находимся внутри приложения и с открытым файлом. В Linux у нас есть очень мощные инструменты, которые мы можем запускать из Терминала и, если захотим, найдем любой текст, который есть в нашей команде, воспользуемся командой GREP.

GREP Это команда, которая поможет нам найти текст в указанном нами файле. Его название происходит от g / re / p, команды, которая работает для чего-то подобного в текстовом редакторе Unix / Linux. Как и многие другие команды, GREP Имеет много доступные варианты, которые мы добавим в виде букв и каждый будет служить своей задаче. Объединив эти параметры, мы сможем выполнять сложный поиск в одном или нескольких файлах. Здесь мы покажем вам все, что вам нужно знать.

С помощью GREP найдем любой текст в любом файле

Прежде всего мы объясним доступные варианты:

–i: не будет различать верхний и нижний регистр.
–w: заставить его находить только определенные слова.
–v: выбирает строки, которые не совпадают.
–n: показывает номер строки с запрошенными словами.
–h: удаляет префикс из имени файла Unix в выводе.
–r: рекурсивный поиск в каталогах.
–R: как -r, но следуйте всем символическим ссылкам.
–l: показывает только имена файлов с выделенными строками.
–c- Показывает только одно количество выбранных строк для каждого файла.
-Цвет: Отображает совпадающие шаблоны в цветах.

На изображении, которое вы указали в заголовке этой статьи, я искал слово «Изображения» в файле «830.desktop», который находится по этому пути. Как видите, я написал:

grep Imágenes /home/pablinux/Documentos/830.desktop

Имейте в виду, что в этой статье мы напишем примеры, которые необходимо изменить в соответствии с нашими поисковыми предпочтениями. Когда мы говорим «Файл», «Слово» и т. Д., Мы будем ссылаться на файл с его путем.. Если бы я просто написал «grep Images 830.desktop», я бы получил сообщение о том, что файл не существует. Или так было бы, если бы файл не находился в корневом каталоге. Другие примеры:

grep -i images /home/pablinux/Documentos/830.desktop, где «изображения» - это слово, которое мы хотим найти, а остальное - файл с его путем. В этом примере выполняется поиск 
«изображений» в файле «830.desktop» без учета регистра.
grep -R изображения: он будет искать во всех строках каталога и всех его подкаталогах, где найдено слово «изображения».
grep -c пример test.txt: это будет искать нас и показывать общее количество раз, когда "example" появляется в файле с именем "test.txt".

С помощью grep мы также можем искать файлы

Если мы хотим найти файл 830.desktop, мы напишем следующую команду:

grep 830.desktop

Это выполнит найдите файл «830.desktop» в личной папке. Другими словами, если файл находится в личной папке другого пользователя, он не будет найден. Это самая нормальная вещь в мире, потому что у пользователя нет разрешения на доступ к чужому контенту без своего пароля.

Как выполнять рекурсивный поиск

GREP это также позволяет нам выполнять поиск в соответствии с повторяющимися правилами или рекомендациями. Например, прочтите все файлы в каждом каталоге, содержащие слово «Pablinux». Для этого напишем:

grep -r Pablinux /home/

Хорошо:

grep -R Pablinux /home/

Мы увидим результаты для «Pablinux» в отдельной строке, перед которой будет указано имя файла, в котором он был найден. Если мы не хотим видеть имена файлов в выводе данных, мы будем использовать опцию -h (от «скрыть»; скрыть):

grep -h -R Pablinux /home/

Мы можем объединить варианты вместе и написать «-hR» без кавычек.

Как выполнять точный поиск слов

Иногда есть файлы, которые содержат то, что мы хотим найти для чего-то еще. Например, это может произойти с нами в сложных словах, и, выполнив поиск по слову «леса», мы можем найти «рейнджеров». Если мы хотим найти точное слово мы будем использовать опцию -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Вышеупомянутая команда будет искать «леса», игнорируя рейнджеров, в файле «vacation.txt» по указанному пути. Если мы хотим найти два разных слова, мы воспользуемся командой задать расширенное:

egrep -w bosques|plantas /ruta/del/archivo

Узнайте, сколько раз слово появляется в файле

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

grep -c prueba /ruta/al/archivo

Добавив параметр -n, мы увидим номер строки, в которой появляется слово.

Обратный поиск

Мы также можем сделать обратное, то есть искать строки, не содержащие слова. Для этого мы будем использовать параметр -v, который будет выглядеть следующим образом:

grep -v la ruta/al/archivo

Приведенная выше команда отобразит все строки, в которых нет слова «the». Это может пригодиться в документах или списках, в которых слово повторяется много раз, и по какой-то причине нам нужен доступ к остальным строкам.

Доступ к системной информации с помощью GREP

GREP он не только способен выполнять поиск в файлах. Это также возможность просматривать системную информацию. На предыдущем снимке экрана мы видим, как он показывает нам, какая у нас модель ПК (я знаю, что это не самый мощный ноутбук в мире). Для этого мы использовали команду:

cat /proc/cpuinfo | grep -i 'Model'

Хорошо:

grep -i 'Model' /proc/cpuinfo

Если мы хотим увидеть имена дисковых накопителей, мы напишем:

dmesg | egrep '(s|h)d[a-z]'

Как вывести список только совпадающих имен файлов

Если мы хотим увидеть список только с именами файлов, которые соответствуют поисковому запросу, мы будем использовать параметр -l, как показано ниже:

grep -l 'main' *.c

И если мы хотим видеть слово в цветах, мы напишем:

grep --color palabra /ruta/al/archivo

Как видите, команда GREP является очень мощный инструмент Это стоит особенно в тех случаях, когда мы не помним, где мы что-то написали или в программировании. Кроме того, он помогает нам узнавать информацию о системе так, как это понравится любителям Терминалов.