使用 awk 搜索字符串并打印第一行的第一列

使用 awk 搜索字符串并打印第一行的第一列

我对awk.我想创建一个快速命令来查找父 Nodejs 进程的进程号。我想出了这个:

ps aux | awk '/node/' | awk 'NR == 1 {print $1}'

但是,我认为应该有一种方法将这两个awk命令合并为一个命令。更紧凑的写法是什么?

编辑:

虽然pgrep更适合这个任务,但我仍然想知道如何使用 搜索和打印第一行awk

答案1

您不需要对 的输出进行任何文本处理ps,有一个专门用于此目的的工具,称为pgrep

只需执行以下操作:

pgrep node

node您可以使用正则表达式模式代替字符串。

对于带有进程名称的详细输出:

pgrep -l node

也获取命令名称:

pgrep -a node

检查man pgrep以获得更多想法。


如果您坚持使用awkonps并将两个awks 合并为一个,请执行以下操作:

ps aux | awk '/node/ {print $1; exit}' 

相关内容