ps列自动宽度

时间:2015-02-24 22:23:38

标签: list awk process ps

ps -eo user,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,group,args | awk 'match($0, /some[0-9]/)' - 当我在我的Debian服务器上运行此命令时,由于空间不足,“group”列的输出将被剥离。 Man ps:“egroup EGROUP进程的有效组ID。如果可以获得并且字段宽度允许,则为文本组ID,否则为十进制表示。                              (别名组)。“ 我试过了:

ps -eo user,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,group,args | awk 'match($0, /some[0-9]/)'

ps -wwo user,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,group,args | awk 'match($0, /some[0-9]/)'

ps --width 90000000 -eo user,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,group,args | awk 'match($0, /some[0-9]/)'

ps -wweo user,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,group,args | awk 'match($0, /some[0-9]/)' | cat

但是,仍然会将组列转换为小数而不是组名。

所以我的问题是:我怎么能告诉ps总是给我看完整列。

注意:此命令通过php exec()运行。

谢谢。

1 个答案:

答案 0 :(得分:2)

通过向列本身添加宽度来解决问题:

ps -eo user,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,group:50,args | awk 'match($0, /some[0-9]/)'

group:50”中的50是列的宽度。