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

 


Responder a