仅保留特定列的 N 个字符

仅保留特定列的 N 个字符

我正在尝试处理 CSV 文件,只保留特定列值的前 10 个字符。

字段值位于“”内,中间有一个逗号,这给了我错误,我能够修复这些错误,但我无法检索并仅保留此后字段的前 10 个字符。这些列位于索引 12 和 17 上。以下是我的尝试方法:

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

我的 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,,

我希望日期字段是这样的:

25/06/2007

有人可以帮我吗? :) 谢谢!

答案1

关于什么awk -F, 'BEGIN {FS=",";OFS=","} {print $1,$2,$3,$4,substr($5,2,10),$7,substr($8,2,10)}' YourFileName

相关内容