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