Salve!
Primeiramente a resposta ao que você não perguntou:
- Use o parâmetro --no-headers no 'ps' para evitar o uso de !/COMMAND/
Agora o que vc perguntou :)
Não se usa printf da forma que vc está usando.
Conforme o manual do awk: printf fmt, expr-list
Ou seja, primeiro defina o formato, depois passe a lista de parâmetros
definidos separados por vírgulas.
Para escrever uma string e um ponto flutuante, use:
printf "%s %f",p,proc[p]
Mas no seu caso, para formatar, faça algo assim:
printf "%-20s%1.1f",p,proc[p]
Os números servem para definir o tamanho e o sinal negativo indica
alinhamento à esquerda.
Fabiano Caixeta Duarte
Consultor em soluções para Redes de Computadores
Ribeirão Preto - SP
weberlf escreveu:
> Boa noite lista
>
> Tenho a seguinte shell:
>
> ############################################
> #!/bin/sh
> PATH=/bin:/usr/bin:/sbin
> while true;
> do
> ps -A -o fname,pcpu | awk '!/COMMAND/ { proc[$1]+=$2 } END {
> printf "cpustats: localtime " strftime("%c", systime());
> print " "
>
> for ( p in proc)
> if( proc[p] > 0 ) {
> printf " " p " " proc[p]
> print "\r"
> }
>
> print " "
> }'
> sleep 3;
> done;
> ###########################################
>
> O resultado é o seguinte:
>
> cpustats: localtime Sat Dec 10 20:03:06 2005
> kscand/N 0.2
> postmast 17.6
> 3dmd 0.2
> kscand/H 0.7
>
> Como fazer para que segunda coluna sair alinhada e ordenada
> decrescente conforme abaixo ?
>
> cpustats: localtime Sat Dec 10 20:03:06 2005
> postmast 17.6
> kscand/H 0.7
> kscand/N 0.2
> 3dmd 0.2
>
> Obrigado
>
> Weber
>
>
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html