Ordenar valores

1. Ordenar valores

Silvio Rodrigues
justit1976

(usa Outra)

Enviado em 03/08/2012 - 10:42h


Amigos bom dia!


Como faço para a saida abaixo:

/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm04.show-sw-cisco:CPU utilization for five seconds: 6%/0%; one minute: 7%; five minutes: 6%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm05.show-sw-cisco:CPU utilization for five seconds: 7%/0%; one minute: 9%; five minutes: 7%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm09.show-sw-cisco:CPU utilization for five seconds: 5%/0%; one minute: 7%; five minutes: 3%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm10.show-sw-cisco:CPU utilization for five seconds: 5%/0%; one minute: 7%; five minutes: 2%

Ficar assim:


/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm04.show-sw-cisco: five minutes: 2%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm05.show-sw-cisco: five minutes: 3%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm09.show-sw-cisco: five minutes: 6%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm10.show-sw-cisco: five minutes: 7%





  


2. Re: Ordenar valores

VM
tn4ehi

(usa Outra)

Enviado em 03/08/2012 - 12:35h

Use o awk:

awk '{print substr($1,0,length($1)-3)" "$10" "$11 $12}'

Não é complicado:

print: mostra na tela
substr: usei para remover o "CPU" que está grudado no path
" ": espaço entre os caracteres (você pode usar 'printf' se preferir)
$1, $10, $11, $12: Isso é a posição dos caracteres pelo delimitador comum, ou seja:

$1= path
$10: five
$11: minutes
$12 porcentagem

Dá pra fazer com o sed também, se você for mais hardcore.


3. Re: Ordenar valores

Silvio Rodrigues
justit1976

(usa Outra)

Enviado em 03/08/2012 - 13:17h


Usei da seguinte forma, mas nao ta ordenando os valores:

grep "CPU utilization" /home/backup-equipamentos/show-cma/`date +%Y%m%d`/* | awk '{print substr($1,0,length($1)-3)" "$10" "$11 $12}'

Veja o output:

/home/backup-equipamentos/show-cma/20120803/sw54.spo.show-sw-cisco five minutes:7%
/home/backup-equipamentos/show-cma/20120803/sw55.spo.show-sw-cisco five minutes:6%
/home/backup-equipamentos/show-cma/20120803/sw61.spo.show-sw-cisco five minutes:5%
/home/backup-equipamentos/show-cma/20120803/sw62.spo.show-sw-cisco five minutes:11%
/home/backup-equipamentos/show-cma/20120803/sw63.spo.show-sw-cisco five minutes:4%




Queria que ficasse assim:

/home/backup-equipamentos/show-cma/20120803/sw63.spo.show-sw-cisco five minutes:4%
/home/backup-equipamentos/show-cma/20120803/sw61.spo.show-sw-cisco five minutes:5%
/home/backup-equipamentos/show-cma/20120803/sw55.spo.show-sw-cisco five minutes:6%
/home/backup-equipamentos/show-cma/20120803/sw54.spo.show-sw-cisco five minutes:7%
/home/backup-equipamentos/show-cma/20120803/sw62.spo.show-sw-cisco five minutes:11%







4. Re: Ordenar valores

VM
tn4ehi

(usa Outra)

Enviado em 03/08/2012 - 13:29h

A ideia não é que apenas copie os comandos, é que você aprenda. Eu já dei o toque inicial.

Procure pela função 'asort' do awk, ela faz exatamente o que você quer. Também há várias outras maneiras de se fazer isso, explore-as.


5. Re: Ordenar valores

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/08/2012 - 17:22h

justit1976 escreveu:


Amigos bom dia!


Como faço para a saida abaixo:

/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm04.show-sw-cisco:CPU utilization for five seconds: 6%/0%; one minute: 7%; five minutes: 6%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm05.show-sw-cisco:CPU utilization for five seconds: 7%/0%; one minute: 9%; five minutes: 7%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm09.show-sw-cisco:CPU utilization for five seconds: 5%/0%; one minute: 7%; five minutes: 3%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm10.show-sw-cisco:CPU utilization for five seconds: 5%/0%; one minute: 7%; five minutes: 2%

Ficar assim:


/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm04.show-sw-cisco: five minutes: 2%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm05.show-sw-cisco: five minutes: 3%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm09.show-sw-cisco: five minutes: 6%
/home/backup-equipamentos/show-cma/20120803/us-nyc-dcx-swof-cm10.show-sw-cisco: five minutes: 7%





Um comando que se usa para ordenação em shell script chama-se sort.

Eu testei prá ver se a sua saída funciona com esse sinal de porcentagem.

No caso, esse seu texto de exemplo foi direcionado para

sort -t : --key=5 -n

-t para usar ':' como separador de campos, --key=5 porque o último campo é numérico, usado para testes, -n para critério de ordenação numérica ao invés de critério de ordenação de texto, há essa diferença.

Veja se atende suas necessidades. Veja também man sort para outras opções que possam lhe interessar.


6. Consegui

Silvio Rodrigues
justit1976

(usa Outra)

Enviado em 06/08/2012 - 11:11h



Srs. bom dia!

Consegui da seguinte forma:

grep "CPU utilization" /home/backup-equipamentos/show-cma/`date +%Y%m%d`/* | awk {'print $1 " MEDIA 1 MINUTOS " $9'} | sort -gk 5


Atenciosamente;
Silvio Rodrigues



7. Re: Ordenar valores

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 06/08/2012 - 12:55h

Marque como resolvido se não for precisar de mais ajuda sobre o mesmo assunto.
Abraço






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts