Найдите строки, содержащие две строки, с помощью команды Grep

Чтобы найти строки, содержащие две конкретные строки, с помощью команды grep, вы можете использовать следующие методы:

  1. Базовый grep: вы можете использовать базовый синтаксис grepдля поиска строк, содержащих обе строки. Команда будет такой:

    grep "string1.*string2\|string2.*string1" file.txt

    Эта команда ищет строки, содержащие «строку1» и «строка2» в любом порядке.

  2. Расширенный grep: параметр -Eв grepвключает расширенные регулярные выражения, что обеспечивает более гибкий шаблон поиска. Команда будет такой:

    grep -E "string1.*string2|string2.*string1" file.txt
  3. Использование вертикальной черты и нескольких команд grep. Вы можете комбинировать несколько команд grep, используя символ вертикальной черты (|) для поиска строк, содержащих первую строку, и затем найдите в этих результатах строки, содержащие вторую строку. Команда будет такой:

    grep "string1" file.txt | grep "string2"
  4. Использование awk: команду awkможно использовать для поиска строк, содержащих обе строки. Команда будет такой:

    awk '/string1/ && /string2/' file.txt
  5. Использование Perl: команда perlпредоставляет более продвинутые возможности регулярных выражений. Команда будет такой:

    perl -ne 'print if /string1/ && /string2/' file.txt