从Linux生成CSV列表';ps&x27;
假设我有一个如下的从Linux生成CSV列表';ps&x27;,linux,csv,ps,Linux,Csv,Ps,假设我有一个如下的ps命令: ps -Ao args:80,time,user --sort time 它将给我一个“空格”分隔的行集。一排可能是这样的 paulnath -bash 00:00:00 我想说服ps使用逗号(甚至制表符!)进行分隔,这样它就可以被其他语言自动处理。请注意,args中可能有空格,因此按字段awking本身不起作用。您可能希望从/proc/[0-9]*/获取所需信息。我想您会发现它比ps的输出更易于编程访问。如何: ps -Ao args:80,time,use
ps
命令:
ps -Ao args:80,time,user --sort time
它将给我一个“空格”分隔的行集。一排可能是这样的
paulnath -bash 00:00:00
我想说服ps使用逗号(甚至制表符!)进行分隔,这样它就可以被其他语言自动处理。请注意,args中可能有空格,因此按字段awking本身不起作用。您可能希望从/proc/[0-9]*/获取所需信息。我想您会发现它比ps的输出更易于编程访问。如何:
ps -Ao args:80,time,user --sort time |
sed 's/\([[:digit:]]\{2\}:\)\{2\}[[:digit:]]\{2\}/,\0,/'
这对格式(包括时间)很敏感,并且假设进程没有逗号。它们可以,但如果您想逃避这一点,它显然更复杂。您可以使用以下语法放置自己的分隔符:
ps -Ao "%U,%t,%a"
将命令行保留在末尾,否则,如果命令行包含一些
,
将很难解析:)则%是所谓的AIX格式描述符。并非所有ps列都有这样的描述符。例如,rsz列没有它。