Copiar e Adicionar dados com Sed/Awk/ER/grep [RESOLVIDO]

1. Copiar e Adicionar dados com Sed/Awk/ER/grep [RESOLVIDO]

Murillo Maciel de Arruda
murillo.arruda

(usa Debian)

Enviado em 16/01/2011 - 00:16h


Pessoal, boa noite

Eu gostaria muito de uma ajuda, eu nao estou conseguindo isso com o sed.

Eu tenho um arquivo com o seguinte conteúdo:

NAME[1212]="Fulano de Tal"
FULL[1212]="Fulano de Tal
NAME[1010]="Ciclano de Souza"
FULL[1010]="Ciclano de Souza"
NAME[1515]="Beltrano Filho"
FULL[1515]="Beltrano Filho"


E preciso transformar em:

NAME[1212]="Fulano de Tal-1212"
FULL[1212]="Fulano de Tal"
NAME[1010]="Ciclano de Souza-1010"
FULL[1010]="Ciclano de Souza
NAME[1515]="Beltrano Filho-1515"
FULL[1515]="Beltrano Filho

Ou seja, basicamente pegar o número do NAME e colocar no final do nome da pessoa.

Agradeço toda ajuda.

Muito Obrigado
Att,
Murillo


  


2. Re: Copiar e Adicionar dados com Sed/Awk/ER/grep [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 16/01/2011 - 02:05h

Veja se esse exemplo ajuda:

$ echo "NAME[1212]=Fulano de Tal" | sed 's/.*\[\([^]]*\)\].*/&-\1/'
NAME[1212]=Fulano de Tal-1212



3. Re: Copiar e Adicionar dados com Sed/Awk/ER/grep [RESOLVIDO]

Murillo Maciel de Arruda
murillo.arruda

(usa Debian)

Enviado em 16/01/2011 - 11:09h

Ajudou bastante, mais como poderia fazer para o sed ler o arquivo nomes.txt e fazer essas operações lá dentro?

Tipo, localizar a linha com o NAME e substituí-la pela nova?


Muito Obrigado!!!!!


4. Re: Copiar e Adicionar dados com Sed/Awk/ER/grep [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 16/01/2011 - 16:23h

2 formas:

1 - Gravando no próprio arquivo:

sed -i 's/.*\[\([^]]*\)\].*/&-\1/' arquivo

2 - Gravando num arquivo auxiliar:

sed 's/.*\[\([^]]*\)\].*/&-\1/' < arquivo_de_entrada > arquivo_de_saída


5. Re: Copiar e Adicionar dados com Sed/Awk/ER/grep [RESOLVIDO]

Murillo Maciel de Arruda
murillo.arruda

(usa Debian)

Enviado em 16/01/2011 - 16:42h

Legal! A solução é ótima!

Mais me joga num problema:

NAME[1212]="Fulano de Tal"-1212
FULL[1212]="Fulano de Tal"-1212

Ele acaba jogando o numero no FULL tambem, preciso dele só no NAME


6. Resolvido!

Murillo Maciel de Arruda
murillo.arruda

(usa Debian)

Enviado em 16/01/2011 - 18:31h

Cara, consegui fazer, segue abaixo a solução:

sed 's/NAME\[\([^]]*\)\].*/&-\1"/'

Obrigado pela dica, valeu!!!


7. Falta de atenção minha... =]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 17/01/2011 - 01:51h

Mas... que bom que o exemplo te deu ideia de como resolver.

Flw!!!


8. Re: Copiar e Adicionar dados com Sed/Awk/ER/grep [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/01/2011 - 04:28h

caraca, o smarcel manja muito de sed






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts