"строка grep | строка grep" с awk без канала

Нет причин делать то, что они сделали. 2>&1действительно полностью избыточен в этом примере.

5
30.12.2020, 16:48
2 ответа

Действие по умолчанию с awk— печать, поэтому эквивалентно

output | grep string1 | grep string2

это

output | awk '/string1/ && /string2/'

напр.

$ cat tst
foo
bar
foobar
barfoo
foothisbarbaz
otherstuff

$ cat tst | awk '/foo/ && /bar/'
foobar
barfoo
foothisbarbaz
11
18.03.2021, 22:39

Если вы хотите, чтобы awkнаходил строки, соответствующие как string1, так и string2, в любом порядке, используйте&&:

 output | awk '/string1/ && /string2/ {print $XY}'

Если вы хотите сопоставить либо string1, либо string2(, либо оба ), используйте||:

 output | awk '/string1/ || /string2/ {print $XY}'
5
18.03.2021, 22:39

Теги

Похожие вопросы