使用管道处理grep返回自身。我如何排除它?

时间:2014-06-12 17:12:21

标签: linux bash

root@test:~# ps x | grep 'vsftpd'
  568 ?        Ss     0:00 /usr/sbin/vsftpd
28694 pts/0    S+     0:00 grep --color=auto vsftpd

如何排除自我grep进程本身?另外,如何在给定进程名称的一部分的情况下获取进程ID(pid)?

我正在寻找一些东西,它会给我带有名称的pid并排除自我grep过程。

2 个答案:

答案 0 :(得分:4)

传统方式是:

ps x | grep 'vsftpd'| grep -v grep

其中grep -v expr返回 匹配expr的所有内容

然后,您可以使用awk提取相关字段(您的案例中的pid)

ps x | grep 'vsftpd'| grep -v grep | awk '{ print $2 }'

$2对应相关字段/列)

答案 1 :(得分:4)

通常的伎俩是

ps x | grep '[v]sftpd'