分配awk多个变量

时间:2015-02-05 12:17:01

标签: bash awk

我正在使用此命令检查所有sshd进程以及sshd deamon的CPU USAGE和CMD:

ps -C sshd -o %cpu,cmd

输出示例:

%CPU CMD
 0.0 sshd: root [priv]
 0.0 sshd: aadmin@pts/1

之后我用过:

ps -C sshd -o %cpu,cmd | awk '!/%CPU/ {print $1, $3}'

输出:

0.0 root
0.0 aadmin@pts/1

要对CPU USAGE和第三行进行排序,我想要的是分配awk输出var以便为多个进程和单独的行分配这样的输出。

CPU_USAGE=0.0 USER=root
CPU_USAGE=0.0 USER=aadmin@pts/1

我尝试使用awk -v将变量分配给awk,但没有成功

1 个答案:

答案 0 :(得分:3)

ps -C sshd -o %cpu,cmd | awk '!/%CPU/ {printf("CPU_USAGE=%s USER=%s\n", $1, $3)}'

您只需要格式化print声明,为此,请使用printf

或更短:

ps -C sshd -o %cpu,cmd | awk '!/%CPU/ {print "CPU_USAGE="$1, "USER="$3}'

希望这是你想要的。你的问题不清楚......