Bash 为awk分配多个变量

Bash 为awk分配多个变量,bash,awk,Bash,Awk,我使用此命令检查所有sshd进程和CPU使用情况,并检查sshd deamon的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使用情况和第三行进行排序,我想

我使用此命令检查所有sshd进程和CPU使用情况,并检查sshd deamon的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使用情况和第三行进行排序,我想要分配
awk
output var,以便在多个进程和单独的行中有这样的输出

CPU_USAGE=0.0 USER=root
CPU_USAGE=0.0 USER=aadmin@pts/1
我试图用
awk-v
将变量分配给awk,但没有成功

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}'

希望这是你想要的。你的问题不清楚,否则…

问题是如何让你的输出看起来像那样?也许我这里遗漏了什么,但你不能将你的
打印更改为
打印“CPU使用率=”$1,“用户=”$3
?@EtanReisner是的,像这样的CPU使用率=0.0用户=根CPU使用率=0.0用户=aadmin@pts/1不清楚这些与变量有什么关系。你能更新你的问题来解释你的意思吗?也不清楚这些问题与排序CPU使用和第三行有什么关系。排序什么?第三行是什么?