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

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

Re: [shell-script] Formatação de arquivo


From: Paulo Soares Drumond
Subject: Re: [shell-script] Formatação de arquivo
Date: Tue, 1 Mar 2011 16:02:54 -0300

Obrigado Júlio,

Funcionou perfeitamente aqui. Quando você enviou o e-mail eu havia
encontrado uma solução, mas muito menos elegante que a sua. Eu a
colocarei abaixo apenas para fins de comparação. Mas desde já adianto
que adotei sua solução que é, entre outras vantagens, bem mais rápida.

# Organizo máquinas por filas e gero o arquivo /tmp/f2m1.tmp
for item in $filas
 do
  echo $item : >> /tmp/f2m1.tmp
  grep $item /tmp/f2m.tmp | awk -F : '{print $1}' >> /tmp/f2m1.tmp
done

primeira=1

rm /tmp/f2m.tmp

cat /tmp/f2m1.tmp | while read LINHA
 do
  if [ `echo $LINHA | awk '{print $NF}'` = ":" ]
   then
    if [ $primeira = 1 ]
     then
      echo -e -n "$LINHA "
      primeira=2
     else
      echo -e -n "\n$LINHA "
    fi
   else
     echo -n "$LINHA "
  fi
done

echo

rm /tmp/f2m1.tmp

E a saída gerada:
prioridade : bud02 bud03 bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11 bud12
tecnologia : bud02 bud03
pesquisa : bud04 bud06 bud08 bud10 bud12
rapidas : bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11 bud12
normal : bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11 bud12
longas : bud04 bud06 bud08 bud09 bud10 bud11 bud12

Paulo
http://homens-ibcc.blogspot.com
http://www.twitter.com/psdrumond

"E se o meu povo, que se chama pelo meu nome, se humilhar, e orar, e
buscar a minha face e se converter dos seus maus caminhos, então eu
ouvirei dos céus, e perdoarei os seus pecados, e sararei a sua terra."
(II Crônicas 7:14)


Em 1 de março de 2011 15:24, Julio C. Neves <address@hidden> escreveu:
>
>
>
> Aê Paulo
> $ Var="bud02: prioridade tecnologia
>
> > bud03: prioridade tecnologia
> > bud04: prioridade pesquisa rapidas normal longas
> > bud05: prioridade rapidas normal
> > bud06: prioridade pesquisa rapidas normal longas
> > bud07: prioridade rapidas normal
> > bud08: prioridade pesquisa rapidas normal longas
> > bud09: prioridade rapidas normal longas
> > bud10: prioridade pesquisa rapidas normal longas
> > bud11: prioridade rapidas normal longas
> > bud12: prioridade pesquisa rapidas normal longas"
> julio@Julio-NB:~/tstsh$ for Coisa in prioridade pesquisa rapidas normal
> longas
> > do
> > echo $Coisa: $(grep $Coisa <<< "$Var" | cut -f1 -d: | paste -sd' ')
> > done
> prioridade: bud02 bud03 bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11
> bud12
> pesquisa: bud04 bud06 bud08 bud10 bud12
> rapidas: bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11 bud12
> normal: bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11 bud12
> longas: bud04 bud06 bud08 bud09 bud10 bud11 bud12
>
> Shell é D+!!! ;)
>
> Abraços,
>
> Julio
>
> *Cursos de Shell ou Zenity em fins de semana?*
>
> *☎ Ligue (21) 8112-9988* ☎
>
> Em 1 de março de 2011 14:42, Paulo Soares Drumond <address@hidden>escreveu:
>
> >
> >
> > Senhores,
> >
> > Estou lutando o dia todo para inverter a saída de um arquivo. Gerei um
> > script ontem que me fornece a seguinte saída (SAIDA 1):
> > bud02: prioridade tecnologia
> > bud03: prioridade tecnologia
> > bud04: prioridade pesquisa rapidas normal longas
> > bud05: prioridade rapidas normal
> > bud06: prioridade pesquisa rapidas normal longas
> > bud07: prioridade rapidas normal
> > bud08: prioridade pesquisa rapidas normal longas
> > bud09: prioridade rapidas normal longas
> > bud10: prioridade pesquisa rapidas normal longas
> > bud11: prioridade rapidas normal longas
> > bud12: prioridade pesquisa rapidas normal longas
> >
> > Aí estão as filas LSF (Load Sharing Facility) para cada máquina. Fiz
> > este script com alguns comandos do LSF. Agora preciso fazer outro que
> > gere a saída de máquinas por filas. Ou seja, eu teria algo assim
> > (SAIDA 2):
> > prioridade: bud02 bud03 bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11
> > bud12
> > tecnologia: bud02 bud03
> > pesquisa: bud04 bud06 bud08 bud10 bud12
> > rapidas: bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11 bud12
> > normal: bud04 bud05 bud06 bud07 bud08 bud09 bud10 bud11 bud12
> > longas: bud04 bud06 bud08 bud09 bud10 bud11 bud12
> >
> > Como o LSF não me fornece ferramentas capaz de gerar a saída assim,
> > estou tentando converter a SAIDA 1 em SAIDA 2. O problema é que não
> > consigo formatá-la como mostrado acima. Basicamente o comando que
> > estou usando é:
> >
> > for item in $filas
> > do
> > echo $item:
> > grep $item /tmp/f2m.tmp | awk -F : '{print $1}'
> > done
> >
> > Sendo filas uma variável que armazena todos os nomes das filas e
> > /tmp/f2m.tmp armazena a SAIDA 1.
> >
> > Alguma sugestão?
> >
> > Paulo
> > http://homens-ibcc.blogspot.com
> > http://www.twitter.com/psdrumond
> >
> > "E se o meu povo, que se chama pelo meu nome, se humilhar, e orar, e
> > buscar a minha face e se converter dos seus maus caminhos, então eu
> > ouvirei dos céus, e perdoarei os seus pecados, e sararei a sua terra."
> > (II Crônicas 7:14)


reply via email to

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