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