shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] awk com printf


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] awk com printf
Date: Sun, 11 Dec 2005 22:43:23 -0200
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050317)

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: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos









reply via email to

[Prev in Thread] Current Thread [Next in Thread]