e sobre awk -F, 'BEGIN {FS=",";OFS=","} {print $1,$2,$3,$4,substr($5,2,10),$7,substr($8,2,10)}' YourFileName
Estou tentando tratar um arquivo CSV que manterei apenas os 10 primeiros caracteres de valores de coluna específicos.
Os valores dos campos estão dentro de "" e tem uma vírgula no meio que me dá erros e que eu consiga corrigir, mas não consigo recuperar e manter apenas os 10 primeiros caracteres do campo depois disso. As colunas estão nos índices 12 e 17. Veja como eu tentei:
awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2)
if ($i == 12 || $i == 17)
print substr($i,index($0,$9))
else gsub(",", "", $i)
} 1' $1 > testTREATED.csv
Eu tenho algo parecido com isso no CSV:
ID,ID_CUSTOMER,CUSTOMER_FULLNAME,TYPE_DOCUMENT,NUM_DOCUMENT,CUSTOMER_NAME,LASTNAME1_CUSTOMER,LASTNAME2_CUSTOMER,F_UID,L_UID,ID_LIST,ID_ACCOUNT,DATE_OF_BIRTH,CASE,ANALIST,COMMENTS,COMMENTS2,START_DATE,ORGUNIT_ID,AMOUNT,TYPE
0001,,SWISS CHOCOLATE LTD,,,,SWISS CHOCOLATE LTD,,,000000-000000,XX,,,,,,,"25/06/2007 23:45:65, 000000000",0,,
e quero que o campo de data seja assim:
25/06/2007
Alguém pode me ajudar com isso? :) Obrigado!