Intereting Posts
Сервер Fedora как точка доступа Как устранить проблему с исключительными разрешениями – Rasp Pi, HFS +, SMB, Mac Debian перезагружается после загрузки с ошибкой «не отвечает» Инвертировать цвета в целом PDF (конвертирование) Установите все пакеты из заданного yum repo Присоедините два файла с соответствующими столбцами Почему Debian работает без брандмауэра по умолчанию? Откройте файл с номерами строк больше (AIX) Где я могу найти «libgtk-3.so.0 () (64 бит)» для Amazon Linux? Perl однострочный для замены значений, превышающих пороговое значение Как настроить, какая звуковая карта jack2 будет использовать Linux не прокси-арп для меня, несмотря на документацию, предполагающую, что она Как подключиться к беспроводной сети со скрытым SSID с помощью терминала? Показывать в мегабайтах можно в скрипте bash? НЕ закрывайте telnet при подаче имени пользователя и пароля с помощью эха

Как объединить эти два grep-регулярных выражения

У меня есть два регулярных выражения grep

grep -e '[Yy].*[Yy].[Ee][Ee]' first.txt 

а также

 grep -e '[Ee][Ee].*[Yy].*[Yy]' first.txt 

Как объединить эти два в одно регулярное выражение?

Посредством конкатенации шаблонов?

 grep -e '[Yy].*[Yy].[Ee][Ee][Ee][Ee].*[Yy].*[Yy]' first.txt 

Или вы имели в виду, по сути дела, логическое И двух шаблонов?

Если последнее, вам нужно подделать его, так как в то время как grep имеет встроенные OR ( | ) и NOT ( -v ; [^] ), он не имеет встроенного И. Один из способов заключается в том, чтобы вывести выход одного grep в другой:

 grep -e '[Yy].*[Yy].[Ee][Ee]' first.txt | grep '[Ee][Ee].*[Yy].*[Yy]' 

Другой способ – искать оба шаблона последовательно, в любом порядке, с логическим ИЛИ (сокращенно для краткости):

 grep -Ee 'pattern1.*pattern2|pattern2.*pattern1' input.txt 

Я считаю, что первое было более кратким и более легким в обслуживании.

Вы можете использовать grep для обоих шаблонов сразу, используя \| между каждой моделью.

 grep -e '[Yy].*[Yy].[Ee][Ee]'\|'[Ee][Ee].*[Yy].*[Yy]'