[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 12:32:26 -0300 |
Com o sed você consegue sim, basta delimitar os padrões, neste caso vc cria
grupos:
num = (do inicio até o primeiro espaço em branco)
Nome = (o que vem depois do 'num') ou (o que se inicia com uma letra) até um
espaço seguido de um número
as notas = numero com 1 ou 2 digitos seguidos de uma virgula e com mais dois
digitos
resultado = (tudo depois das notas) ou (o que tem um número seguido de um
espaço) seguido de uma letra até o final da linha
Ex.:
$ linha="170.00259604/3 JOSE LUIZ MOREIRA 10,00 1,00 11,00 24,00 46,00
ELIMINADO 4.1.9"
$ 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')
$ echo $num
170.00259604/3
$ echo $nome
JOSE LUIZ MOREIRA
$ echo $resultado
ELIMINADO 4.1.9
Se quiser separar as notas e diminur a linha de comando pode usar:
$ notas=$(echo $linha | sed -r 's/(^.*\/[0-9]) ([a-zA-Z].*[a-zA-Z])
([0-9]{1,2},[0-9]{2} .*) ([a-zA-Z].*$)/\3/g')
Ps.: Não posto em AWK pq ainda não estou familiarizado com o mesmo
Att.:
Jonathan Lessa
Em 12 de julho de 2011 11:47, César Vianna <address@hidden>escreveu:
> **
>
>
> Caros, tenho que separar as seguintes colunas em um arquivo no padrão
> abaixo.
>
> O problema é que os nomes tem quantidades de palavras diferentes. Daí não
> dá
> pra usar o cut e não consegui fazer uma regexp pro sed.
>
> O padrão é:
> num;nome;nota1;2;3;4;5;resultado
>
> 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
>
> Abraço,
> --
> 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]
>
>
>
--
Att.:
Jonathan Lessa
[As partes desta mensagem que não continham texto foram removidas]
- Separar Colunas com quantidade incerta, César Vianna, 2011/07/12
- Re: [shell-script] Separar Colunas com quantidade incerta, Enio Onodera, 2011/07/12
- Re: [shell-script] Separar Colunas com quantidade incerta,
Jonathan Lessa <=
- Re: [shell-script] Separar Colunas com quantidade incerta, Tiago Peczenyj, 2011/07/12
- Re: [shell-script] Separar Colunas com quantidade incerta, Robson Alexandre, 2011/07/12
- Re: [shell-script] Separar Colunas com quantidade incerta, César Vianna, 2011/07/12
- Re: [shell-script] Separar Colunas com quantidade incerta, Jonathan Lessa, 2011/07/12
- Re: [shell-script] Separar Colunas com quantidade incerta, Robson Alexandre, 2011/07/14
- Re: [shell-script] Separar Colunas com quantidade incerta, Robson Alexandre, 2011/07/13
- Dúvida em performance de script., Bruno Viana, 2011/07/14
- Re: [shell-script] Dúvida em performance de script., Jeiks, 2011/07/14
- OFF TOPIC Re: Dúvida em performance de script., Cristiano, 2011/07/14
- Re: Separar Colunas com quantidade incerta, Cristiano, 2011/07/14