Поделиться:

Ищем две строки в одной строке файла

Попробуйте такой синтаксис, чтобы найти строки, где есть оба искомых фрагмента:
grep "string1" /path/to/file |grep "string2"

Например, это может выглядеть так:

grep "error" /var/log/messages |grep "critical"

Ищем две строки в любом месте файла или вывода команды

Другая частая задача — найти строки, где встречается хотя бы один из двух паттернов, в любом месте файла или вывода другой команды. Тут поможет флаг -e:

grep -e String1 -e String2

Допустим, в выводе команды ioreg мы хотим увидеть строки с “CurrentCapacity” или “MaxCapacity”. Делаем так:

ioreg -l| grep -e CurrentCapacity -e MaxCapacity

Командная строка, конечно, для продвинутых, но grep — команда довольно дружелюбная. Если вы только начинаете, с нее можно смело стартовать.

Кстати, не забывайте, что grep умеет и исключать строки из вывода — это помогает точнее настраивать поиск.

Если у вас есть свои способы искать несколько строк в файле или выводе — делитесь в комментариях!