对 grep 的每个输出执行多个命令

对 grep 的每个输出执行多个命令

第一的

sudo netstat -nptc | grep -oP "\K[0-9]*(?=/perl)"

上面给出了它们启动时的 pid,所以它一直在运行。

第二

对于上面第一个命令的每个输出,我想执行以下操作:

ps aux | grep <output of first>

如何才能做到这一点?

答案1

要将一个命令的输出发送到另一个命令的命令行,请使用xargs

这里的复杂之处在于您需要启动管道,并为此使用 shell。可以使用以下方法完成此操作:

sudo netstat -nptc | grep -oP "\K[0-9]*(?=/perl)" | xargs -l sh -c 'ps aux | grep "$0"'

参考

相关内容