Команда grep: мощный инструмент для поиска текста в Терминале
Практически любой, у кого есть компьютер или кто с ним работает, знает сочетание клавиш 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 является очень мощный инструмент Это стоит особенно в тех случаях, когда мы не помним, где мы что-то написали или в программировании. Кроме того, он помогает нам узнавать информацию о системе так, как это понравится любителям Терминалов.