grep与同一行的单独关键字模式

时间:2015-03-20 12:50:03

标签: grep

我想使用grep从ps命令的输出中搜索。标准是:它包含特定的用户名和命令。

例如,使用以下ps结果:

suh1     48980  0.0  0.0 144396 20372 ?        Ss   Mar16   0:20 SCREEN -DR l2
tprossi  52257  0.0  0.0 127344  3264 ?        Ss   Mar13   0:26 SCREEN
mannerh1 54331  0.0  0.0 125368  1288 ?        Ss   14:32   0:00 SCREEN
thakorv1 54791  0.0  0.0 126096  2116 ?        Ss   Mar16   0:00 SCREEN
valiman2 58699  0.0  0.0 125364  1244 ?        Ss   Mar17   0:00 SCREEN
rxue     60121  4.0  0.0 108344  1120 pts/176  R+   14:39   0:00 ps aux
rxue     60122  0.0  0.0 103252   920 pts/176  S+   14:39   0:00 grep -e rxue -e SCREEN

我想获得用户" tprossi"并使用命令SCREEN。 一个解决方案是:

ps aux | grep tprossi | grep -i screen

但是这里grep被调用两次,这不是那么优雅。有没有捷径? 我也试过了:

ps aux | grep -i "tprossi*screen"

但它不起作用:<

任何人都可以提出一些建议吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

您错过了.

ps aux | grep -i "tprossi.*screen"

没有它,你只需要重复i零次或多次。 .代表任何角色。


您也可以使用awk

ps aux | awk '/tprossi/ && /screen/'  # in any order

ps aux | awk '/tprossi.*screen/'  # in this order