0
난 다음 .CSV 파일 한 (크기가 큰 ~ GB에 MB의 수백, 여러 열 ~ 20, 분류,로 구분하지 ",") :bash에서 거대한 CSV 파일의 같은 줄을 비교하고 연결하는 방법은 무엇입니까?
name1,address1,town1,zip1,....,category1
name2,address2,town2,zip2,....,category2
name3,address3,town3,zip3,....,category3_1
name3,address3,town3,zip3,....,category3_2
name3,address3,town3,zip3,....,category3_3
name4,address4,town4,zip4,....,category4_1
name4,address4,town4,zip4,....,category4_2
name4,address4,town4,zip4,....,category4_3
name4,address4,town4,zip4,....,category4_4
name5,address5,town5,zip5,....,category5
은 내가 하나에 선을 연결할 필요 , 만약 그들이 같은 라인을 가지고 카테고리 만 다르다면 그 카테고리를 마지막 칼럼에 넣으십시오. ";" 구분 내가 와 그것을 시도, 예컨대 :
name1,address1,town1,zip1,....,category1
name2,address2,town2,zip2,....,category2
name3,address3,town3,zip3,....,category3_1;category3_2;category3_3
name4,address4,town4,zip4,....,category4_1;category4_2;category4_3;category4_4
name5,address5,town5,zip5,....,category5
읽는 동안 ...; do read ... done < $ 파일이지만, 이것은 모든 파일을 2 줄씩 읽으며 모든 줄을 비교하지는 않습니다. 또한 범주 정보를 배열에 저장하고 병합 된 범주 열을 만들려고했지만 일부 줄 스크립트에서는 원하는대로 구문 분석을 중지합니다. 의 열이 많은 큰 파일을 읽을 때 정말 느리게됩니다을 읽을 수 있기 때문에, 또는 이을 나오지 AWK이를 끝내지 좋은 것입니다,하지만, 다른 언어로이 작업을 수행하는 더 좋은 방법이 있다면 난 괜찮을거야 그것으로. 감사합니다.
레코드가 "동일"하기 위해 얼마나 많은 필드가 동일해야하는지. 카테고리를 병합하기 전에 예제에서 4 개의 필드가 같아야한다는 것을 보여주고 있지만 다른 필드가 있다는 것을 의미합니다. 다른 사람들도 일치해야합니까? –
적어도 중복 된 이름의 필드가 동일한 경우 전체 줄이 동일하므로 (전체 줄을 스팸하지 않으려 고합니다 :)). 동일한 행에는 카테고리 만 다릅니다. 구분 기호와 병합하려면 이러한 여러 범주가 필요합니다. 말이 돼? – dedomraz
@MarkSetchell 필자는 예제에서'5' 필드를 계산하지만, 그렇지 않은 경우 GNU sed 샘플의 숫자를 변경할 수 있습니다. –