无需使用 grep,仅使用 awk

无需使用 grep,仅使用 awk

我正在尝试生成要传递给 strace 的 PID 列表,我只想要 PID 的 php-fpm。我可以通过结合使用 grep 和 awk 获得正确的输出,但我正在寻找仅 awk 的答案。以下是我所做的。

这给出了所需的输出:

$ ps ajxf |grep '[p]hp-fpm: pool' |awk '{print $2}'
21547
21548
21549
21938
31131
31132
31133
31189
36283
10549
12179
12893
12964
12989
13565
14420
14421
15848
17737

这个没有:

$ ps ajxf |awk '/php-fpm: pool/{if (NR!=1) {print $2}}'
22903  <--- This is the PID of the awk
21547
21548
21549
21938
31131
31132
31133
31189
36283
10549
12179
20328
20392
20393
20618
22006
22793
22794
22804

答案1

我想你可能会发现皮多夫更加容易使用。

pidof php
24293 19810 19467

您可以使用~来匹配一个字段,并将^匹配锚定到该字段的开头。

awk '$6 ~ /^something/ {print $2}'

相关内容