Как запустить несколько команд AND в команде grep

Я пытаюсь запустить несколько команд И в команде grep, я смог запустить с использованием двух шаблонов:

grep -E 'pattern1.*pattern2' filename

Можно ли использовать три или четыре шаблона с использованием вышеуказанного метода?

2 Solutions collect form web for “Как запустить несколько команд AND в команде grep”

Если порядок шаблонов исправлен, вы можете легко использовать grep как в:

 grep -E 'pattern1.*pattern2.*pattern3' 

Но в случае, если все шаблоны должны присутствовать, и они могут появляться в любом порядке, тогда вы получаете комбинаторную сложность; например, для двух шаблонов:

 grep -E '(pattern1.*pattern2|pattern2.*pattern1)' 

(и для трех моделей у вас будет уже восемь комбинаций).

В таких случаях (т. grep При использовании grep ) лучше каскадировать вызовы в конвейере одного экземпляра grep каждого шаблона:

 grep pattern1 <infile | grep pattern2 | grep pattern3 

Каждый экземпляр будет фильтровать только строки, соответствующие их шаблону, и общий результат будет содержать только строки, которые имеют все шаблоны.

Лучший подход, который приводит к самому четкому решению, – использовать awk :

 awk '/pattern1/ && /pattern2/ && /pattern3/' 

где упорядочение не имеет значения в таком выражении.

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

  • как совместить точный субдомен с grep, игнорируя другие
  • ls выводит несколько столбцов, даже если отправлен в grep с помощью zml-конфигурации grml
  • Извлечение IP-адреса из текста и сохранение его в переменной
  • Как найти точную строку без ведущего или конечного символа
  • Комбинированные переменные с переменными входами в одну строку
  • Как найти номер строки в файле с разделителями, который имеет <20 символов?
  • Объединяйте строки из разных файлов, если шаблон сопоставляется
  • Использование grep с флагом -exclude-dir для исключения нескольких каталогов
  • grep для отображения всех строк, которые начинаются и заканчиваются одним и тем же символом
  • Почему я получаю «недопустимый максимальный счет» из grep в псевдониме?
  • Как я могу скопировать n строк после последних двух вхождений строки в файл?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.