パイプなしのawkの場合、「grep string | grep string」

パイプなしのawkの場合、「grep string | grep string」

できる方法はありますか?

output | grep "string1" | grep "string2" 

しかし、パイプなしでawkを使用していますか?

それは次のとおりです。

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

結果は一致する項目のサブセットでなければなりません。

答え1

基本ジョブは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

答え2

awk両方とも一致する行を見つけるにはstring1 そして string2、どんな順序でも以下を使用してください&&

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

これらのいずれか(string1またはその両方)を一致させるには、以下を使用します。string2||

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

関連情報