Retirar caracteres vírgula (,) da linha do arquivo [RESOLVIDO]

1. Retirar caracteres vírgula (,) da linha do arquivo [RESOLVIDO]

Newton Teixeira
NewtonJr.

(usa CentOS)

Enviado em 23/06/2017 - 17:40h

Prezados,

Tenho que tratar um arquivo com milhares de linhas e de maneira que eu possa gravar os dados em um banco. Segue o formato:

QWUCD17BZE87, "XRUCD1-7BZ Reserva Entr CI-23", HJPD16_TAC, INVAL SACOK AINIB IVORG
QWUCD17BZE88, "XRUCD1-7BZ Reserva Entr CI-24", HJPD16_TAC, INVAL SACOK AINIB IVORG
QWUCD17BZE95, "XRUCD1-7BZ 95 Bloco de Teste", HJPD16A_TAC, ESINI ESTAQ ALINT INVAL SACOK IVORG ESTAD
QWUCD17BZFR1, "XRUCD1-7BZ Falha Comunicação Rede 1", HJPD16_TAC, INVAL SACOK AINIB IVORG
QWUCD17BZFR2, "XRUCD1-7BZ Falha Comunicação Rede 2", HJPD16_TAC, INVAL SACOK AINIB IVORG
QWUCD17BZMC1, "XRUCD1-7BZ Módulo 1 Configurado", HJPD16_TAC, INVAL SACOK AINIB IVORG

Os campos da tabela são definidos pela vírgula e a parte entre aspas duplas é o campo descrição.

Como faço para retirar qualquer caracteres vírgula (,) na parte que está entre aspas duplas?

Exemplo: Eu quero que as linhas :
QWUCD17BZFR1, "XRUCD1-7BZ, Falha, Comunicação, Rede 1", HJPD16_TAC, INVAL SACOK AINIB IVORG
QWUCD17BZFR2, "XRUCD1-7BZ, Falha, Comunicação, Rede 2", HJPD16_TAC, INVAL SACOK AINIB IVORG

Transforme-se em :
QWUCD17BZFR1, "XRUCD1-7BZ Falha Comunicação Rede 1", HJPD16_TAC, INVAL SACOK AINIB IVORG
QWUCD17BZFR2, "XRUCD1-7BZ Falha Comunicação Rede 2", HJPD16_TAC, INVAL SACOK AINIB IVORG

Qualquer ajuda é bem vinda. No aguardo. Oss.


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/06/2017 - 18:40h

Veja se isso resolve:
sed -e :1 -e 's@\(\".*\)\,\(.*\"\)@\1\2@;t1' arquivo.txt 


3. Re: Retirar caracteres vírgula (,) da linha do arquivo

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/06/2017 - 17:48h

Essa é fácil.

Baixe o editor de texto vim caso não tenha, se você usar o ubuntu digite o comando "sudo apt-get install vim" para instala-lo, sem aspas é claro.

Abra o arquivo de texto que você quer com esse editor no terminal, exemplo: vim nomedoarquivo

Após isso, você deve ver o conteúdo do arquivo.

Aperte ESC, e digite o seguinte: :%s/,//g

Isso vai substituir as vírgulas com um espaço vazio.

Para sair e salvar aperte ESC denovo e digite :x ou :wq

Caso o arquivo não tenha ficado como queira você pode sair sem salvar digitando :q!



4. Re: Retirar caracteres vírgula (,) da linha do arquivo

Newton Teixeira
NewtonJr.

(usa CentOS)

Enviado em 23/06/2017 - 18:06h

Meu brother, isso tem que ser via shell script. Como fazer isso com sed, por exemplo?
E outra, é pra retirar as vírgulas só da parte entre aspas duplas. Repare que a vírgula é om token delimitador de campos, mas que pode aparecer no campo descrição, que a parte entre aspas.


5. Re: Retirar caracteres vírgula (,) da linha do arquivo [RESOLVIDO]

Newton Teixeira
NewtonJr.

(usa CentOS)

Enviado em 03/07/2017 - 16:38h

PauloHAC escreveu:

Veja se isso resolve:
sed -e :1 -e 's@\(\".*\)\,\(.*\"\)@\1\2@;t1' arquivo.txt 


Caramba, na mosca. Parabéns e muito obrigado. Por isso que adoro esse Fórum kkkkk Oss!








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts