【问题标题】:How can I modify following ps command to print in comma separated value (CSV) format?如何修改以下 ps 命令以逗号分隔值 (CSV) 格式打印?
【发布时间】:2016-11-14 22:24:29
【问题描述】:

我有以下命令:

ps -e -o pcpu,pmem,args,pid --sort=pcpu | sed '5q' | awk ' {print $1,$2,$3,$4 }'

它的输出是:

%CPU %MEM COMMAND PID
0.0 0.1 /sbin/init 1
0.0 0.0 [kthreadd] 2
0.0 0.0 [ksoftirqd/0] 3
0.0 0.0 [kworker/0:0H] 5

如何修改上面给出的原始命令,以 csv 格式打印,如下所示:

   %CPU, %MEM, COMMAND, PID
    0.0, 0.1, /sbin/init, 1
    0.0, 0.0, [kthreadd], 2
    0.0, 0.0, [ksoftirqd/0], 3
    0.0, 0.0, [kworker/0:0H], 5

【问题讨论】:

    标签: bash shell csv awk ps


    【解决方案1】:

    使用输出字段分隔符 (OFS)。将OFS=", "; 添加到您的 awk 命令中:

    ps -e -o pcpu,pmem,args,pid --sort=pcpu | sed '5q' | awk ' {OFS=", "; print $1,$2,$3,$4 }'
    

    或更短:

    ps -e -o pcpu,pmem,args,pid --sort=pcpu | awk 'NR<=5 {OFS=", "; print $1,$2,$3,$4 }'
    

    输出(示例):

    %CPU、%MEM、命令、PID
    0.0, 0.0, [迁移/0], 6
    0.0, 0.0, [迁移/1], 7
    0.0, 0.0, [迁移/2], 11
    0.0, 0.0, [迁移/3], 14
    

    见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      相关资源
      最近更新 更多