다음 형식의 레코드가있는 텍스트 파일이 있다고 가정하십시오. 여기서 FS
은 일반적으로 쉼표이며, RS
은 일반적으로 줄 바꿈입니다.awk에서 줄 바꿈이 포함 된 필드를 처리 할 수 있습니까?
그러나이 규칙의 예외는 필드가 따옴표 안에 있으면 줄 바꿈과 쉼표를 필드의 일부로 처리해야한다는 것입니다.
"This field contains
line breaks and is
quoted but it
should be treated as a
single field",1,2,3,"another field"
어떻게 나는 아직도 $1,$2...
에 액세스 할 수있는 나는 보통하는 것처럼하지만, 필드 위의 해석과, 제대로 이러한 파일을 구문 분석 AWK 사용할 수 있습니까?
나는 이미 this wiki page을 보았지만 거기에 제시된 해결책은 줄 바꿈 문제를 해결하지 못합니다.
가능할 수도 있지만 매우 깨지기 쉽습니다. Awk는 대부분의 유닉스 도구와 마찬가지로 한 번에 한 줄씩 데이터를 처리하도록 설계되었습니다. 귀하의 도구 세트와의 "계약"이 깨어지면 모든 고통이 이어질 것입니다. $ 1 등을 참조 할 필요가 있기 때문에 나는 어떤 종류의 해킹도 제안 할 가치가 없다. 나는 틀렸다는 것을 증명할 수있을 것이다 ;-) "\ n"의 대체물로 & # *^@와 같은 것을 사용하여 레코드를 평평하게하는 전후 필터가 마음에 떠오르는 유일한 것이다. 행운을 빕니다. – shellter
이것은 사소한 것처럼 보이지 않을 수 있습니다 ... awk이 유일한 옵션입니까? –
아니요, 파이썬으로 작성할 수는 있지만,이 문제는 awk에서 실제로는 구분 기호 문제 일 것입니다. 근본적인 한계가 있기 때문에 awk에서 작동하도록하려고했습니다. – merlin2011