remove vírgula de uma parte específica de uma cadeia longa

5

Eu tenho documento contendo strings muito longas que representam informações decodificadas, eu quero remover , da última parte da string. Por exemplo, esta é uma das longas seqüências de caracteres:

 Insert into PE_ATRT_S(ID_ANA_TX,FQ_WQ_ASDF,ID_PRTY,NM_ATHY_TX,SC_RND,QU_DGT_RND) values (99990987868959,null,68,'T59 - %,Dsc,Itm-2 tax 1 Juris',4,5);

Eu quero remover a vírgula da última parte dela, então deixe-me aumentar o zoom para mostrar a você como é:

(99990987868959,null,68,'T59 - %,Dsc,Itm-2 tax 1 Juris',4,5);

para que o resultado final seja assim:

Insert into PE_ATRT_S(ID_ANA_TX,FQ_WQ_ASDF,ID_PRTY,NM_ATHY_TX,SC_RND,QU_DGT_RND) values (99990987868959,null,68,'T59 - % Dsc Itm-2 tax 1 Juris',4,5);

por favor, observe a última parte da longa string, sem vírgula em parte dela, vamos ampliar para ver melhor:

(99990987868959,null,68,'T59 - % Dsc Itm-2 tax 1 Juris',4,5);
    
por Zahi 09.10.2018 / 22:33

4 respostas

6

awk -F\' -vOFS=\' '{gsub(","," ",$2); print}'
    
por 09.10.2018 / 22:36
3

Solução alternativa com gnu sed :

sed -r 's/(\x27.*),(.*\x27)/ /g' file

\x27 : ascii código de aspas simples '

    
por 09.10.2018 / 23:22
0

Vitrine Perl:

perl -pe "1 while s/'.*\K,(?=.*')/ /" input.txt

Saída:

Insert into PE_ATRT_S(ID_ANA_TX,FQ_WQ_ASDF,ID_PRTY,NM_ATHY_TX,SC_RND,QU_DGT_RND) values (99990987868959,null,68,'T59 - % Dsc Itm-2 tax 1 Juris',4,5);

Saída ampliada:

(99990987868959,null,68,'T59 - % Dsc Itm-2 tax 1 Juris',4,5);
    
por 10.10.2018 / 00:02
0
 perl -pe "s/.*'\K(.*?)(?=')/\ =~ y|,| |r/e"
  • Pula para o último par de aspas simples por meio de regex ganancioso. *
  • Em seguida, selecione o conteúdo entre as aspas simples e transforme todos os comnas em espaços.
por 10.10.2018 / 08:45