如何从ps -aux提取单词

时间:2019-03-29 11:56:58

标签: bash awk grep aix

当我执行命令ps -ef | grep yypasswd 我收到此输出。

testacc 25124194 2512312620   0 08:00:53  pts/0  0:00 grep yypasswd

如何使用命令从此输出单词“ yypasswd”中提取

4 个答案:

答案 0 :(得分:0)

ps -ef | grep -o yypasswd

来自man grep:

  

-o,--only-matching                 仅打印匹配行中匹配的(非空)部分,并将每个这样的部分打印在单独的输出行上。

请注意,您发布的ps行是您运行的grep的实际过程。要排除这种情况,您可以:

ps -ef | grep -v grep | grep -o yypasswd

搜索进程名称的另一种方法是使用pgrep:

pgrep -f yypasswd

pgrep会为您提供匹配进程的PID

答案 1 :(得分:0)

由于不清楚您要做什么:

如果您期望以下输出:

yypasswd

然后做

ps -ef | grep yypasswd | awk '{print $8}'

如果需要以下输出:

testacc 25124194 2512312620   0 08:00:53  pts/0  0:00

然后做

ps -ef | grep yypasswd |  awk '{print $1, $2, $3, $4, $5, $6 ,$7}'

希望有帮助。

答案 2 :(得分:-1)

使用:

ps -ef | grep yypasswd | awk '{print $8}'

或使用pgrep

pgrep -l yypasswd | awk '{print $2}'

答案 3 :(得分:-2)

解决方案

ps -ef | grep yypasswd | awk '/yypasswd/{print $NF;}'