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