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: Karin Klayton Schiochet
Subject: Re: [shell-script] Formatação de arquivo
Date: Tue, 01 Mar 2011 16:48:16 -0300

Paulo,

Bem fiz algo dessa forma.
lista.txt
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

lsf.sh
#!/bin/bash

LSF=$1

for i in prioridade tecnologia pesquisa rapidas normal longas
do
       algo=$(grep $i $LSF | cut -d : -f1)
       echo -e $i:  $algo 
done

$source lsf.sh lista.txt
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

Atenciosamente,
Karin Klayton Schiochet


Em Ter, 2011-03-01 às 16:02 -0300, Paulo Soares Drumond escreveu:
>   
> 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]