Чтобы найти строки, содержащие две конкретные строки, с помощью команды grep, вы можете использовать следующие методы:
-
Базовый grep: вы можете использовать базовый синтаксис
grepдля поиска строк, содержащих обе строки. Команда будет такой:grep "string1.*string2\|string2.*string1" file.txtЭта команда ищет строки, содержащие «строку1» и «строка2» в любом порядке.
-
Расширенный grep: параметр
-Eвgrepвключает расширенные регулярные выражения, что обеспечивает более гибкий шаблон поиска. Команда будет такой:grep -E "string1.*string2|string2.*string1" file.txt -
Использование вертикальной черты и нескольких команд grep. Вы можете комбинировать несколько команд
grep, используя символ вертикальной черты (|) для поиска строк, содержащих первую строку, и затем найдите в этих результатах строки, содержащие вторую строку. Команда будет такой:grep "string1" file.txt | grep "string2" -
Использование awk: команду
awkможно использовать для поиска строк, содержащих обе строки. Команда будет такой:awk '/string1/ && /string2/' file.txt -
Использование Perl: команда
perlпредоставляет более продвинутые возможности регулярных выражений. Команда будет такой:perl -ne 'print if /string1/ && /string2/' file.txt