代码之家  ›  专栏  ›  技术社区  ›  Paul Nathan

从Linux“ps”生成CSV列表

  •  8
  • Paul Nathan  · 技术社区  · 14 年前

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

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

    paulnath -bash 00:00:00
    

    我想说服ps用逗号(甚至制表符)来分隔,这样它就可以被其他语言自动处理。请注意args中可能有空格,因此按字段awking本身不起作用。

    3 回复  |  直到 14 年前
        1
  •  16
  •   emx    12 年前

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

    ps -Ao "%U,%t,%a"
    
        2
  •  0
  •   Matthew Flaschen    14 年前

    怎么样:

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

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

        3
  •  -1
  •   Slartibartfast    14 年前

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