Поиск по нескольким шаблонам
На этом этапе мы расширим свои знания о grep
и научимся искать строки, соответствующие любому из двух шаблонов. Это полезно, когда вы хотите найти строки, содержащие одно из двух ключевых слов.
Мы можем использовать опцию -E
с grep
, чтобы включить расширенные регулярные выражения, которые позволяют нам использовать символ |
(символ конвейера, но внутри кавычек) для обозначения "ИЛИ".
Давайте попробуем найти строки, содержащие либо "master", либо "main", в выводе команды git branch
. Убедитесь, что вы по-прежнему находитесь в директории ~/project/my-time-machine
.
git branch | grep -E "master|main"
Поскольку в нашем репозитории в настоящее время есть только ветка master
, вывод будет таким же:
* master
Однако, если бы у нас была ветка с именем main
, эта команда показала бы и ветку master
, и ветку main
.
Давайте смоделируем наличие другой ветки, создав ее (мы будем подробнее изучать создание веток позже):
git branch new-feature
Теперь запустите команду git branch
еще раз, чтобы увидеть новую ветку:
git branch
В выводе должны быть показаны обе ветки:
* master
new-feature
Теперь давайте используем grep -E
для поиска строк, содержащих "master" или "new-feature":
git branch | grep -E "master|new-feature"
Теперь в выводе должны быть показаны обе строки:
* master
new-feature
Это демонстрирует, как можно использовать grep -E
с оператором |
для фильтрации вывода на основе нескольких шаблонов. Эта техника очень мощна, когда вам нужно найти определенную информацию в выводе командной строки, которая может соответствовать одному из нескольких вариантов.