特定の列の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

おすすめ記事