从Linux'ps'生成CSV列表

时间:2010-06-25 00:00:57

标签: linux csv ps

假设我有ps命令,如下所示:

ps -Ao args:80,time,user --sort time 

它会给我一个“空格”分隔的行集。一行可能看起来像这样

paulnath -bash 00:00:00

我想说服ps用逗号分隔(或者甚至是标签!),这样它就可以被其他语言自动处理。请注意,args中可能包含空格,因此,按字段调整本身不会起作用。

3 个答案:

答案 0 :(得分:15)

您可以使用以下语法来放置自己的分隔符:

ps -Ao "%U,%t,%a"

答案 1 :(得分:0)

怎么样:

ps -Ao args:80,time,user --sort time | 
sed 's/\([[:digit:]]\{2\}:\)\{2\}[[:digit:]]\{2\}/,\0,/'

这对格式很敏感,包括时间,并假设进程没有逗号。他们可以,但如果你想逃避,那显然更复杂。

答案 2 :(得分:-1)

您可能希望从/ proc / [0-9] * /获取所需信息。我想你会发现它比ps的输出更容易以程序方式访问。