[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)