Как следует из названия grep, шаблон для поиска описывается с помощью регулярного выражения. Регулярное выражение - это особый тип строки, описывающий шаблон для сопоставления, поиска и управления. Чтобы узнать больше о grep и регулярном выражении, ознакомьтесь с использованием grep и egrep с регулярным выражением.
В демонстрационных целях возьмите образец текстового файла. В этом примере загрузите Стандартную общественную лицензию GNU v3.0 текстовый файл.
Базовый поиск
Основной способ использования grep - поиск базовой строки.
Взгляните на следующую команду grep. Он будет искать слово «GNU» в текстовом файле.
$ grep "GNU" gpl-3.0.текст
Чтобы показать номер строки, используйте флаг «-n».
$ grep -n «GNU» gpl-3.0.текст
Чтобы выполнить поиск без учета регистра с помощью grep, используйте флаг «-i».
$ grep -ni «gnu» gpl-3.0.текст
Возможно, вы не захотите видеть поисковые совпадения, а только имя файла, в котором совпадение произошло в некоторых ситуациях. Чтобы напечатать только имя файла, используйте флаг «-l». Здесь звездочка означает использование всех текстовых файлов в текущем каталоге.
$ grep -l «GNU» *
Мы также можем передать вывод других команд в grep.
$ cat gpl-3.0.txt | grep -n «GNU»
Регулярное выражение
Regex предлагает умный способ точной настройки поиска. У него свои правила. Однако разные приложения и языки программирования по-разному реализуют регулярное выражение. Вот несколько примеров, которые можно использовать с grep.
Чтобы определить, что строка должна быть найдена в начале строки, используйте символ каретки (^).
$ grep -n «^ GNU» gpl-3.0.текст
Чтобы определить, что строка должна находиться в конце строки, используйте знак доллара ($).
$ grep -n «к $» gpl-3.0.текст
Чтобы описать, что в определенном месте шаблона может быть любой символ, используйте символ точки (.). Например, выражение «G.U »действителен, если между« G »и« U »есть какой-либо символ.
$ grep -n «G.У ”ГПЛ-3.0.текст
Чтобы описать, что в определенном месте шаблона может быть подмножество символов, используйте квадратные скобки ([]). Например, выражение «t [wo] o» говорит о том, что совпадение допустимо только для «два» и «слишком».
$ grep -n «т [wo] o» gpl-3.0.текст
Расширенное регулярное выражение
Как следует из названия, расширенное регулярное выражение может выполнять более сложные задачи, чем базовые регулярные выражения. Чтобы использовать расширенное регулярное выражение с grep, вы должны использовать флаг «-E».
$ grep -nE Для поиска двух разных строк используйте операторы ИЛИ (|).
$ grep -nE «GNU | Общие | Лицензия» gpl-3.0.текст
Поиск текста в файлах
Теперь самое главное. Вместо того, чтобы вручную указывать grep файл для выполнения поиска, grep может сделать это автоматически. В следующей команде grep будет использовать все доступные текстовые файлы в текущем каталоге для поиска шаблона.
$ grep * Если вы хотите, чтобы grep выполнял поиск в другом каталоге, вам необходимо указать местоположение.
$ grep
Если есть папки, grep не исследует их по умолчанию. Чтобы указать grep выполнять рекурсивный поиск, используйте флаг «-R».
$ grep -nR
Grep GUI
Если вы предпочитаете работать с графическим интерфейсом, но все же хотите пользоваться функциями grep, попробуйте searchmonkey. Это интерфейсное решение для grep. Пакет доступен практически во всех основных дистрибутивах Linux.
Найдите текст в файлах с помощью nano
GNU Nano - простой и мощный текстовый редактор, который поставляется с любым дистрибутивом Linux. Имеет встроенные функции для поиска текста в текстовом файле.
Обратите внимание, что в этом методе вам нужно открыть текстовый файл и выполнить поиск вручную. Это выполнимо, если есть только несколько текстовых файлов, с которыми можно работать. Если их больше, то использование grep - самый оптимальный выбор.
Откройте текстовый файл в nano.
$ нано
Чтобы найти совпадение строки, нажмите «Ctrl + W». После ввода строки для поиска нажмите «Enter».
Найдите текст в файлах с помощью Vim
Vim - известный и признанный текстовый редактор. Это эквивалент командной строки современного текстового редактора. Vim имеет множество расширенных функций, таких как плагины, макросы, автозаполнение, фильтры и т. Д.
Подобно nano, Vim работает с одним файлом за раз. Если у вас несколько текстовых файлов, то использование grep - самый оптимальный способ.
Чтобы выполнить поиск в текстовом файле, сначала откройте его в Vim.
$ vim
Введите следующую команду Vim и нажмите «Enter».
$: /
Найдите текст в файлах с помощью текстового редактора GNOME
Текстовый редактор GNOME - это текстовый редактор, который поставляется с рабочим столом GNOME. Это упрощенный текстовый редактор со всеми основными функциями, которые вы ожидаете. Это хорошая альтернатива текстовым редакторам командной строки.
Подобно nano и vim, к этому методу применяются те же меры предосторожности. Если количество текстовых файлов велико, лучше придерживаться grep.
Откройте текстовый файл в текстовом редакторе. Нажмите «Ctrl + F», чтобы открыть панель поиска.
Найти текст в файлах с помощью VS Code
Visual Studio Code - мощный текстовый редактор с множеством функций. Он оптимизирован для использования программистами как полноценная IDE. Он доступен практически во всех основных дистрибутивах Linux.
Установите пакет оснастки Visual Studio Code.
$ sudo snap install code --classic
Откройте текстовый файл в VS Code. Нажмите «Ctrl + F», чтобы начать поиск.
Последние мысли
Существует множество способов поиска текста в файлах. Это простая задача. Настоятельно рекомендуется освоить команду grep, потому что она предлагает наибольшую ценность с точки зрения эффективности и простоты использования.
Если вы предпочитаете графический интерфейс, то есть множество текстовых редакторов на выбор. Любой современный текстовый редактор предоставит возможность поиска текста.
Удачных вычислений!