Meu arquivo é um arquivo delimitado por vírgula e o qualificador de texto é ~, mas minha exigência é localizar e substituir o arquivo delimitado por vírgulas por um arquivo delimitado por | (pipe) e remover o qualificador de texto ~ sem nada, no entanto,
Eu não devo remover aspas ou aspas duplas ou qualquer caractere especial dentro dos dados presentes no qualificador de texto. eg: ~ abc ", ~ eu preciso disso como abc",
Abaixo está o conteúdo do meu arquivo de origem e da maneira que eu espero que o arquivo de saída ou manipulado seja.
Arquivo de origem:
364034,2015652205,26722,2015,4,~C25753-4~,~TC25753,~,~2WD Double Cab 144.2" SLT,~,~Y~,40506.16,43555.00,1095.00,~043,005,006,007,003,008,016,041,012,029,068,027,028,033~,3,~2WD Double Cab 144.2"~,~SLT~,6,4,~N~,~S~,~N~,~S~,~N~,~N~,~N~,~~,~ ~,~Confirmed~,~w2015k65m22t5~,~Sierra 2500HD~,~Double Cab Standard Box 2-Wheel Drive SLT~,~Rear Wheel Drive~,~Extended Cab Pickup - Standard Bed~
Após a limpeza, preciso do arquivo assim:
364034|2015652205|26722|2015|4|C25753-4|TC25753,|2WD Double Cab 144.2" SLT,|Y|40506.16|43555.00|1095.00|043|005|006|007|003|008|016|041|012|029|068|027|028|033|3|2WD Double Cab 144.2"|SLT|6|4|N|S|N|S|N|N|N|| |Confirmed|w2015k65m22t5|Sierra 2500HD|Double Cab Standard Box 2-Wheel Drive SLT|Rear Wheel Drive|Extended Cab Pickup - Standard Bed
Eu tentei sed -i -e com várias opções, mas a saída não está 100% correta.
Eu tentei seguir, mas não está dando o resultado certo que eu queria
sed -i -e 's/,~/|/g' file_name
sed -i -e 's/~,/|/g' file_name
sed -i -e 's/~//g' file_name
sed -i -e 's/\([0-9],[0-9]\)/|/g' file_name
sed -i -e 's/\r//g' file_name