외곽이 필드에 쉼표로 파일을 수정합니다 : 그것은 주석 필드에 외곽이 쉼표의 변수 수를 포함하기 때문에사용 AWK는 CSV 내가처럼 보이는 CSV 파일이
height, comment, name
152, he was late, for example, on Tuesday, Fred
162, , Sam
내가이 파일을 구문 분석 할 수 있습니다 (하지만 다른 필드 없음). 때문에 내 문제가 해결되지 않습니다
height, comment, name
152, he was late; for example; on Tuesday, Fred
162, , Sam
(따옴표로 전체 필드를 묶는 : 나는 두 번째 필드에 쉼표가 세미콜론이 될 수 있도록 (나에게 매우 새로운) awk
을 사용하여 파일을 수정하고 싶습니다 내 CSV 파서는 따옴표를 이해하지 못합니다.) 지금까지 NF를 사용하여 비공개 쉼표의 수를 계산 한 다음 gsub를 사용하여 불쾌한 정규식으로 바꾼 것을 보았습니다.하지만 awk를 활용할 수 있어야한다고 생각합니다. 더 읽기 쉬운 프로그램을 작성하고 NF가 이런 식으로 행동하는지 확신 할 수 없습니다.
는 ** 정말 ** 프레드 후 쉼표 있습니까? 그게 얼마나 못생긴가, 실제로 얼마나 많은 분야가 있나? 파일에 임의의 쉼표 * 이외의 *가 포함 된 파일이라면 먼저 문제를 해결해야합니다. – DigitalRoss
여분의 쉼표가 매번 필드 2에 있는지, NF == 6인지, 추가 쉼표 3 개가 있는지, 일시적으로 처음과 마지막을 다른 것으로 변경 한 다음 나머지 쉼표를 세미콜론 (한 번에 한 줄씩). 물론 이것은 실제로 유연한 장기적인 솔루션이 아닙니다. 데이터에 절대 존재하지 않는 FS 값으로 데이터를 내보내는 것이 어떻습니까? 행운을 빕니다. – shellter
@DigitalRoss Fred 후에는 쉼표가 없습니다. 그것은 오타였습니다. 지적 해 주셔서 감사합니다. – orizon