shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shell-script-pt] Me ajudem a entender o motivo!


From: George Robinson
Subject: [shell-script-pt] Me ajudem a entender o motivo!
Date: Wed, 17 Nov 2021 20:08:18 -0300

Boa noite amigos!

Bom, pra começar, eu gostaria de dizer que já arrumei um workaround pro problema proposto, porém, eu gostaria de entender pq ele acontece. Vou explicar o que ocorre e como consegui dar a volta no problema, porém, gostaria de entender o que ocorre!

Tenho um arquivo csv contendo o seguinte cabeçalho:

header.csv:
purl,fname,mname,lname,address,city,state,zip,zip4,seq_num,pin,code,cardno,cardshort,card1,card2,card3,card4,exp_date,card_no_for_print,expirydatecard,ivrno,maildate

E aqui vai uma entrada pra passar dados relativos a esse cabeçalho:

joseoliveira.myurl.com,José,,Oliveira,10521 casa das couves,bananal,RS,27503,9290,1,650b263c5d,21811469,22222222222,11111111,33333,4444,5555,6666,"Dec 01, 2021",0000 0000 0000 0000,12/21,(888) 888-8888,11/01/21

Então eu criei um script para ler os campos e jogar para dentro de um arquivo.txt:

#!/bin/bash
tempResult='header.csv'
BULLDOGDATA='bulldog_data.txt'
> $BULLDOGDATA
while IFS=, read -r purl fname mname lname address city state zip zip4 seq_num pin code cardno cardshort card1 card2 card3 card4 exp_date card_no_for_print expirydatecard ivrno maildate;
do
echo "$purl,$fname,$lname,$address,$city,$state,$zip-$zip4,$seq_num,$code,$maildate" >> $BULLDOGDATA
done < $tempResult

=============================================================================================================================================================
Então começa o problema:

cat $BULLDOGDATA

purl,fname,lname,address,city,state,zip-zip4,seq_num,code,maildate
joseoliveira.myurl.com,José,Oliveira,10521 casa das couves,bananal,RS,27503-9290,1,21811469,(888) 888-8888,11/01/21

Por alguma razão que eu desconheço, o script trata o último separador como parte do campo.

Para resolver isso de curto prazo, eu criei adicionei mais um item de cabeçalho ficando assim:

while IFS=, read -r purl fname mname lname address city state zip zip4 seq_num pin code cardno cardshort card1 card2 card3 card4 exp_date card_no_for_print expirydatecard ivrno aaa maildate;
do

Que então me retorna:

purl,fname,lname,address,city,state,zip-zip4,seq_num,code,
joseoliveira.myurl.com,José,Oliveira,10521 casa das couves,bananal,RS,27503-9290,1,21811469,11/01/21

Alguém ter como me explicar porque ocorre e qualquer seria a forma elegante de tratar?

Muito obrigado!!!


.....


--
George Robinson
Analista de Suporte
Tel: +55 (21) 97449-8138

reply via email to

[Prev in Thread] Current Thread [Next in Thread]