alex_tj
(usa Outra)
Enviado em 01/11/2016 - 19:07h
Galera
Boa tarde,
Tenho um problema e gostaria de ajuda.
Aqui no trabalho o pessoal me envia um arquivo chamado TESTE.TXT que contém as seguintes informações: NumConta, AnoMes, Cooperativa e Valor --> e esses dados ficam dispostos como mostrado abaixo (sem cabeçalho):
X|200110|1003|0
X|200111|1003|1
Y|200110|1001|2
Y|200111|1001|6
Z|200112|1005|0
Todavia preciso realizar um pivoteamento dessa informação onde gero um arquivo secundário para que uma outra aplicação leia.
O código que uso para pivotear é esse:
awk -F"|" '{if(!X[$1]++){FIR=FIR?FIR"_"$1"""":$1} {Y[$1,$2,"|",$3]=$4;Z[$2,"|",$3]++}}END{n=split(FIR,FCL,"_");for(i=1;i<=n;i++){s=s?s"|"FCL[i]:FCL[i]} print s; for(j in Z){s=j;for(i=1;i<=n;i++){split(FCL[i],PK,"_");p=Y[PK[1],j]?Y[PK[1],j]:0;s=s"|"p};print s}}' TESTE.TXT > TESTE_2.TXT
Porém depois que utilizo esse comando de pivot e dou um vi no arquivo TESTE_2.TXT ele apresenta o caracter especial <LS> = file separator - que também é representado por ^\ .
Preciso substituir esse caracter especial por espaço em branco ou fazer uma forma com que ele não apareça, pois minha aplicação secundária não reconhece esse caracter e dá erro.
O resultado final do arquivo TESTE_2.TXT quando dado o comando de vi fica:
X|Y|Z
200111^\|^\1001|0|6|0
200112^\|^\1005|0|0|0
200111^\|^\1003|1|0|0
200110^\|^\1001|0|2|0
200110^\|^\1003|0|0|0
E preciso que fique apenas assim:
X|Y|Z
200111|1001|0|6|0
200112|1005|0|0|0
200111|1003|1|0|0
200110|1001|0|2|0
200110|1003|0|0|0
Poderiam me ajudar? Desde já valeu galera...! Tentei ser o mais claro possível.
Abç.