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