Como mesclar linhas quebradas por novas linhas dentro de um campo entre aspas duplas?

0

Imagine que a entrada seja:

KY,On,Ind ,Yes,1J5Z,KYEEI9,1/1/2016 Contract Code
KY,On,Ind ,Yes,"1GH8
",KYEEID,1/1/2016 Contract Code
KY,On,Ind ,Yes,1J5Y,KYEEIJ,1/1/2016 Contract Code

Eu gostaria de ter as 3 linhas (com nova linha como #### por exemplo):

KY,On,Ind ,Yes,1J5Z,KYEEI9,1/1/2016 Contract Code
KY,On,Ind ,Yes,"1GH8####",KYEEID,1/1/2016 Contract Code
KY,On,Ind ,Yes,1J5Y,KYEEIJ,1/1/2016 Contract Code

Obrigado Emanuel

    
por Emanuel Oliveira 09.03.2018 / 19:43

2 respostas

1

awk solução:

awk -F',' '{ printf "%s%s", $0, ($NF ~ /^".+[^"]$/? "####" : ORS) }' file

A saída:

KY,On,Ind ,Yes,1J5Z,KYEEI9,1/1/2016 Contract Code
KY,On,Ind ,Yes,"1GH8####",KYEEID,1/1/2016 Contract Code
KY,On,Ind ,Yes,1J5Y,KYEEIJ,1/1/2016 Contract Code
    
por 09.03.2018 / 19:53
0
sed -r ':x /$/ { N; s/\r?\n\s*"/####"/; bx}' inputfile

\r? faz com que funcione para os arquivos de texto do Linux e do Windows

    
por 11.03.2018 / 00:56

Tags