Возвращение к основам, часть 4 — использование grep в GNU / Linux
Одна из действительно запутанных вещей для пользователей, которые плохо знакомы с командной строкой, может быть попытка поиска с конкретными деталями. Небольшой полезный инструмент для помощи в этом процессе называется grep, или «печать глобального регулярного выражения», который будет искать регулярные операторы во всем, что вы передаете, и показывать вам совпадения с тем, что вы искали (если таковые существуют).
Прежде чем мы продолжим, достаточно простой пример этого — использовать grep для поиска в списке процессов, заданных командой ps aux, для поиска конкретного приложения.
Grep в GNU / Linux
ps aux | grep spotify
Выполнение этой команды при запущенном Spotify показало мне, что Spotify действительно работает, как показано на изображении ниже. Вы можете видеть, что в Spotify запущено несколько процессов:
Это только один из способов, с помощью которого grep может быть чрезвычайно полезным. Но если углубиться, мы можем добавить в grep и другие параметры, чтобы значительно улучшить нашу функциональность.
Результаты цветового мелирования
Допустим, мы хотим выполнить поиск в документе, чтобы узнать, есть ли в этом документе определенная фраза (возможно, вы хотите узнать, есть ли в phonenumbers.txt номер телефона вашей тети Мэйбл).
grep —color «Mabel» phonenumbers.txt
Примечание. В некоторых дистрибутивах цвет по умолчанию включен, и его использование не требуется.
Эта команда отобразит правильную строку, например: «Тетя Мейбл — 522-111-4321 »с выделенным текстом. Однако в этой строке есть одна загвоздка: если бы я набрал «mabel» со строчной буквой M, она бы ничего не нашла, если предположить, что внутри phonenumbers.txt написано «Aunt Mabel».
Нечувствительность к регистру
Чтобы обойти подобные потенциальные проблемы, мы также можем использовать опцию -i, что означает «регистронезависимость».
grep —color -i «mabel» phonenumbers.txt
Опять же, если предположить, что слово Mabel существует в документе, это найдет и выделит его в этой строке, независимо от того, было ли в документе слово с заглавной буквы или нет.
Вот еще несколько примеров использования grep:
- grep «текст поиска» имя_файла — для поиска файла по указанной строке.
- grep «search text» file_pattern — для поиска нескольких файлов по указанной строке
- grep «Regex» filename — использовать регулярные выражения для поиска содержимого файла.
- grep -r «search text» * — рекурсивный поиск текста во всех файлах.
Дополнительные параметры можно найти на странице руководства grep, введя следующее в окне терминала, чтобы прочитать руководство по grep: man grep
Вы также можете проверить документацию grep на Сайт GNU.
Вывод
Это только верхушка айсберга возможностей grep, но и хорошая отправная точка для новых пользователей, которые помогут им в их стремлении отрастить эпическую бороду, создать собственное ядро с нуля и стать могущественным гуру в своих способах. терминала.