Substituição de delimitador com exclusão de caractere em coluna do tipo String

1. Substituição de delimitador com exclusão de caractere em coluna do tipo String

Lucas Rezende
lucasgrohl

(usa Ubuntu)

Enviado em 22/02/2013 - 15:37h

Galera, eu tenho um arquivo de mais de 3Gb onde os dados estão no formato:

...
201211 001093223359 "PLANO ESPECIAL" "PLANO NOVO"
201211 001199175239 "PLANO ESPECIAL" "PLANO NOVO"
201211 001292676219 "PLANO ESPECIAL" "PLANO NOVO"
...

Eu preciso que isso se torne isso:

...
201211;001093223359;"PLANO ESPECIAL";"PLANO NOVO"
201211;001199175239;"PLANO ESPECIAL";"PLANO NOVO"
201211;001292676219;"PLANO ESPECIAL";"PLANO NOVO"
...

Como eu consigo usar o sed para substituir o " " por ";" sem que os espaços contidos na string das ultimas duas colunas não seja alterado?

Desde já obrigado! (Y)


  


2. Re: Substituição de delimitador com exclusão de caractere em coluna do tipo String

Sandro Marcell
smarcell

(usa Slackware)

Enviado em 22/02/2013 - 16:29h

Tenta assim:

$ echo '201211 001093223359 "PLANO ESPECIAL" "PLANO NOVO"' | sed ':a;s/^\(\("[^"]*"\|[^"]*\)*\) /\1;/;ta'
201211;001093223359;"PLANO ESPECIAL";"PLANO NOVO"


Desse modo o sed irá substituir todos os espaços em branco pelo caractere ';' exceto aqueles contidos dentro de aspas duplas.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts