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

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

grep -E 'pattern1.*pattern2' filename

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

  • Как распечатать элемент из соответствующего ближайшего следующего столбца после поиска элемента в текущем столбце?
  • Поиск последнего элемента в строке с использованием grep
  • sed / awk / grep найти строку между точкой с запятой
  • grep * струнаA *
  • Копирование XML-контента между двумя тегами из одного файла в другой
  • Решение целочисленного выражения ожидается
  • Поиск строки во всех файлах внутри войны
  • grep диапазон временных меток unix из файла журнала
  • 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 . Это просто должно быть законным регулярным выражением.

    Interesting Posts

    Как перейти на Linuxmint 17.2

    Как стереть или записать нули на жесткий диск с помощью / dev / sg2

    Как удалить индикатор звука из главного меню оболочки gnome?

    Как установить максимальный размер каталога?

    Как показать только последние две цифры числа в LibreOffice Calc?

    Sendmail не может найти локальных пользователей (с прописными буквами)

    Linux: используйте maildir вместо mbox

    Настройка 3-х мониторов?

    Как я могу написать «idempotent» .Xmodmap

    Запуск тысяч параллельных фоновых процессов в сценарии bash

    Почему `host` и` nslookup` в Solaris 10 разрешают имена хостов, в то время как `ping` и` telnet` нет?

    Cinnamon panel – список задач не занимает все свободное место

    Получение клавиатуры для работы в debian 6.0 для разблокировки корневого раздела

    Какая польза от использования точки до / дома?

    Как анализировать файл данных для извлечения определенных данных и формата для другого использования?

    Linux и Unix - лучшая ОС в мире.