Подтвердить что ты не робот

Использование sed/awk для печати строк с соответствующим шаблоном ИЛИ другого совпадающего шаблона

Мне нужно напечатать строки в файле, соответствующем шаблону или другому шаблону, используя awk или . Я чувствую, что это простая задача, но я не могу найти ответа. Любые идеи?

4b9b3361

Ответ 1

Путь POSIX

awk '/pattern1/ || /pattern2/{print}'

Изменить

Чтобы быть справедливым, мне нравится lhf лучше с помощью /pattern1|pattern2/, так как он требует меньше ввода для одного и того же результата. Тем не менее, я должен указать, что этот шаблон нельзя использовать для логических операций AND, для чего вам нужно использовать мой шаблон /pattern1/ && /pattern2/

Ответ 2

Использование:

sed -nr '/patt1|patt2/p'

где patt1 и patt2 - это шаблоны. Если вы хотите, чтобы они соответствовали всей строке, используйте:

sed -nr '/^(patt1|patt2)$/p'

Вы можете удалить -r и добавить escape файлы:

sed -n '/^\(patt1\|patt2\)$/p'

для соответствия POSIX.

Ответ 3

почему вы не хотите использовать grep?

grep -e 'pattern1' -e 'pattern2'

Ответ 4

awk '/PATT1|PATT2/ { print }'