awk를 사용하여 csv를 구문 분석합니다.

awk를 사용하여 csv를 구문 분석합니다.

중복 가능성:
csv 파일을 처리하는 강력한 명령줄 도구가 있습니까?

파일의 두 번째 줄(큰따옴표 안에 쉼표가 포함되어 있음)을 구문 분석하려고 합니다.

"100와트 A19 10,000시간 - 투명 전구", American-Light-Bulb-Mfg, 552, 인테리어 생활 > 가정용 가구 > 조명 > 전구," 제품 코드: H20821 사용된 에너지: 100와트 정격 수명: 10,000시간 전압: 130 베이스: E26 - 중간 나사(표준 가정용 베이스) 길이: 4.45" 직경: 2.375" 전구 유형: A19", 1.75, 예,http://www.buylighting.com/ProductDetails.asp?ProductCode=H20821&click=104182,http://www.buylighting.com/v/vspfiles/photos/H20821-2T.jpg,,new,,,0.1,H20821 ,,,,,,,,,,,,,,,,,,,,,,,.25,물론이죠,,,,,,,

head -2 file.csv | tail -1 | awk -F',' '{print $1}'

그러나 다음과 같이 출력됩니다.

"100 Watt A19 10

awkget 을 "100 Watt A19 10,000 Hour - Clear Light Bulb"값으로 어떻게 사용합니까 $1? 또한 5달러의 가치를 어떻게 awk얻을 수 있나요?"Product Code: H20821 Energy Used: 100 Watts Rated Life: 10,000 Hours Volts: 130 Base: E26 - Medium Screw (standard household base) Length: 4.45 Inches Diameter: 2.375 Inches Bulb Type: A19"

답변1

awk이것은 별로 좋은 기능 이 아닙니다 perl. 다음을 사용해 보십시오.

head -n 2 file.csv |
  tail -n 1 |
  perl -lne '@a = /((?:".*?"|.)*?)(?:,|$)/g; print $a[0]'

관련 정보