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

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

Re: [shell-script] Separar Colunas com quantidade incerta


From: Jonathan Lessa
Subject: Re: [shell-script] Separar Colunas com quantidade incerta
Date: Tue, 12 Jul 2011 16:57:11 -0300

Se for para dividir em $num, $nome e $resto vc pode diminuir a expressão:

$ num=$(echo $linha | sed -r 's/(^.*\/[0-9]) ([a-zA-Z0-9 ]+)
([0-9]{1,2},.*$)/\1/g')

$ echo $num
170.00259604/3

$ nome=$(echo $linha | sed -r 's/(^.*\/[0-9]) ([a-zA-Z0-9 ]+)
([0-9]{1,2},.*$)/\2/g')

$ echo $nome
JOSE LUIZ MOREIRA

$ resto=$(echo $linha | sed -r 's/(^.*\/[0-9]) ([a-zA-Z0-9 ]+)
([0-9]{1,2},.*$)/\3/g')

$ echo $resto
10,00 1,00 11,00 24,00 46,00 ELIMINADO 4.1.9



Obs.: o segundo grupo é formado por

Em 12 de julho de 2011 15:55, César Vianna <address@hidden>escreveu:

> O awk do Robson funcionou direto.
>
> Com o sed, fiz alguns ajustes e funcionou também, como segue:
>
> while read linha
> do
> num=$(echo $linha | sed -r 's/(^.*\/[0-9]) ([a-zA-Z].*)
> ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2})
> ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2}) ([a-zA-Z].*$)/\1/g')
> nome=$(echo $linha | sed -r 's/(^[0-9].*\/[0-9]) ([a-zA-Z].*)
> ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2})
> ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2}) ([a-zA-Z].*$)/\2/g')
> resto=$(echo $linha | sed -r 's/(^[0-9].*\/[0-9]) ([a-zA-Z].*)
> ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2})
> ([0-9]{1,2},[0-9]{2}) ([0-9]{1,2},[0-9]{2})
> ([a-zA-Z].*$)/\3;\4;\5;\6;\7;\8/g')
> echo "$num;$nome;$resto"
> done < arquivo
>
>
>
>
> 2011/7/12 Robson Alexandre <address@hidden>
>
> > **
> >
> >
> > Utilizando o q o nosso amigo Tiago usou
> >
> > awk 'OFS=";" { match($0,/[A-Z][A-Z ]+/); print
> >
> >
> $1,substr($0,RSTART,RLENGTH),$(NF-6),$(NF-5),$(NF-4),$(NF-3),$(NF-2),$(NF-1),$NF
> > }' /tmp/arq.txt
> >
> >
> > 170.00259604/3;JOSE LUIZ MOREIRA
> > ;10,00;1,00;11,00;24,00;46,00;ELIMINADO;4.1.9
> > 170.00285361/7;JOSELIO RICARDO NUNES COELHO
> > ;6,00;0,00;4,00;9,00;19,00;ELIMINADO;4.1.9
> > 170.00242788/9;JULIANO DA SILVA CHAVES
> > ;8,00;1,00;7,00;21,00;37,00;ELIMINADO;4.1.9
> > 170.00254924/0;LEANDRO DO NASCIMENTO SAMORA
> > ;8,00;2,00;9,00;30,00;49,00;ELIMINADO;4.1.9
> > 170.00263869/8;MARCELA GOUVEIA FERRAZ
> > ;10,00;5,00;6,00;9,00;30,00;ELIMINADO;4.1.9
> > 170.00237205/9;MARCELO ALVES DRUMMOND DE OLIVEIRA
> > ;4,00;5,00;42,00;63,00;HABILITADO;ITEM;4.3.3
> >
> > 170.00239439/7;MARCOS ANTONIO LIMA
> > ;8,00;3,00;3,00;12,00;26,00;ELIMINADO;4.1.9
> > 170.00240727/2;MARINA DE OLIVEIRA PEREIRA
> > ;10,00;1,00;1,00;9,00;21,00;ELIMINADO;4.1.9
> > 170.00283022/0;MEI YUNG KO ;10,00;3,00;6,00;9,00;28,00;ELIMINADO;4.1.9
> > 170.00261006/2;PHILIP TEIXEIRA ROCHA
> > ;8,00;1,00;6,00;15,00;30,00;ELIMINADO;4.1.9
> > 170.00265535/0;RODRIGO JOSE BUENO
> > ;12,00;1,00;7,00;3,00;23,00;ELIMINADO;4.1.9
> > 170.00280447/0;SIRLANE DE ARAUJO CAMURCA FERNANDES
> > ;10,00;3,00;6,00;24,00;43,00;ELIMINADO;4.1.9
> > 170.00237871/9;VALDECI ANTONIO DE SOUZA
> > ;2,00;2,00;4,00;18,00;26,00;ELIMINADO;4.1.9
> > 170.00252405/5;WAGNER ALVES RIBEIRO MAIA
> > ;5,00;6,00;33,00;60,00;HABILITADO;ITEM;4.3.3
> >
> > 170.00266490/0;ABELARDO DE JESUS
> > ;6,00;2,00;3,00;18,00;29,00;ELIMINADO;4.1.9
> > 170.00252228/6;ABNER AUGUSTO VIANA THOMAZ
> > ;6,00;3,00;3,00;24,00;36,00;ELIMINADO;4.1.9
> > 170.00271565/4;ABNER VISCONTI VIEIRA
> > ;8,00;3,00;10,00;30,00;51,00;ELIMINADO;4.3.4
> >
> > Seria algo assim, César?
> >
> > Att
> >
> > Robson Alexandre
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
>
> --
> César Vianna
> -------------------
> Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
> unidades; os agenciamentos móveis aos sistemas.
> Gilles Deleuze & Felix Guattari
> ******************************************************
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
Att.:
Jonathan Lessa


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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