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: Robson Alexandre
Subject: Re: [shell-script] Separar Colunas com quantidade incerta
Date: Tue, 12 Jul 2011 16:15:25 -0300

Cara acabei de fazer um com sed e ficou meio estranho mas funciona,

sed -r 's/ /;/;s/([[:alpha:][:space:]]{1,})([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})/\1;\2;\3;\4;\5;\6;/' /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
;12,00;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 ;16,00;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

A saída até melhorou....

Att Robson Alexandre

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


reply via email to

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