2015-02-05 3 views
1

Я использую эту команду, чтобы проверить, все процессы Sshd и процессора и CMD для Sshd Deamon:Присвоить AWK несколько переменных

ps -C sshd -o %cpu,cmd 

Пример вывода:

%CPU CMD 
0.0 sshd: root [priv] 
0.0 sshd: [email protected]/1 

После этого я используется:

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

Выход:

0.0 root 
0.0 [email protected]/1 

Чтобы сортировать CPU USAGE и третью строку, я хочу назначить awk вывод var, чтобы иметь такой вывод для нескольких процессов и в отдельных строках.

CPU_USAGE=0.0 USER=root 
CPU_USAGE=0.0 [email protected]/1 

Я пытался присвоить переменную AWK с awk -v, но без успеха

+0

Возникает вопрос, как заставить ваш вывод выглядеть так? –

+1

Возможно, мне что-то не хватает, но вы не можете просто изменить свою «печать» на «print» CPU_USAGE = «$ 1», USER = «$ 3'? –

+0

@EtanReisner да, как это CPU_USAGE = 0.0 USER = root CPU_USAGE = 0.0 USER = aadmin @ pts/1 – klerk

ответ

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

Надежда это то, что у хочу. Ваш вопрос был непонятен иначе ...

Смежные вопросы