如何将 `ps` 的输出解析到不同的字段?

Tim*_*Tim 1 ps

我想解析ps, 的输出以使用 获取任何字段awk。看起来ps字段之间是用空格分隔的,但COMMAND字段中的值通常都有空格。

有没有办法告诉ps在其输出中使用一些独特的字段分隔符?我在联机帮助页中没有找到一个ps

如果没有,我该怎么做才能获取字段中的值?谢谢。

小智 5

当使用printf()风格的用户定义输出时,您可以在格式字符串参数中显式指定您自己的字段分隔符:

$ ps -o '%p,%a,%c,%y'
  PID,COMMAND                    ,COMMAND        ,TTY
15742,ps -o %p,%a,%c,%y          ,ps             ,pts/6
24719,-su                        ,bash           ,pts/6
Run Code Online (Sandbox Code Playgroud)

  • 这是特定于版本的。如果您使用的是 MacOS (Darwin),则“%x”不可用。 (3认同)