如何按列过滤

Ale*_*lls -1 grep ps awk

令人惊讶的是很难找到一个很好的例子。假设我有这个命令:

ps -aeF
Run Code Online (Sandbox Code Playgroud)

第 7 列是处理器#(?)。我只想按第二个核心上运行的进程进行过滤。我怎样才能做到这一点?当然,如果我这样做的话,问题是:

ps -aeF | awk '{print $7}' | grep 2
Run Code Online (Sandbox Code Playgroud)

然后我只得到单列而不打印所有列..

ste*_*ver 5

awk 脚本由成对的模式和当模式评估逻辑为真时执行的操作组成。所以你可以使用

... | awk '$7==2 {print}'
Run Code Online (Sandbox Code Playgroud)

或者更简洁地说,因为{print}这是默认操作

... | awk '$7==2'
Run Code Online (Sandbox Code Playgroud)