假设我有一个ps
如下所示的命令:
ps -Ao args:80,time,user --sort time
它会给我一个“空格”分隔的行集。一行可能看起来像这样
paulnath -bash 00:00:00
我想说服 ps 用逗号(甚至制表符!)分隔,这样它就可以被其他语言自动处理。请注意, args 中可能会有空格,因此,按字段唤醒本身不会起作用。
您可以使用以下语法来放置自己的分隔符:
ps -Ao "%U,%t,%a"
怎么样:
ps -Ao args:80,time,user --sort time |
sed 's/\([[:digit:]]\{2\}:\)\{2\}[[:digit:]]\{2\}/,\0,/'
这对格式(包括时间)很敏感,并且假定进程没有逗号。他们可以,但如果你想逃避它显然更复杂。
您可能希望从中获取所需的信息/proc/[0-9]*/
。我认为您会发现它比 ps 的输出更易于编程访问。