2014-07-16 8 views
0

을 나열하지 내가리눅스 가입 - 명령은 적절한 출력

같은 ID의 목록 File1.csv

123456 
1234234 
2324324 
325435345 

및 기타 파일 구조를 가지고 하나 개의 파일을 가지고하는 것은 다음과 같은 것입니다 :

File2.csv

1234234,asadasdas!w2eaesfd+smakdnjads,"points-ka" 
    2131231,sadfasfa990-0;;'.sadsadsada,"points-ka" 
    2324324,asadasdas!w2eaesfd+smasdasdfadewe,"points-ka" 
    5434234234,adasdfsfhguse38873h78hu8i8377&*&*,"points-ka" 

이제이 명령을 사용하여 파일에 가입하려고합니다.

join -t, file1.csv file2.csv

그러나 이것은 내가 잘못 가고있는 출력을 반환하지 않습니다?

필수 출력 :

1234234,asadasdas!w2eaesfd+smakdnjads,"points-ka" 
2324324,asadasdas!w2eaesfd+smasdasdfadewe,"points-ka" 
+1

'join -t, (sort file1.csv) <(sort file2.csv)'의 경우 어떻게됩니까? – fedorqui

+0

grep을 사용하여 할 수 있습니까 ?? – Aki008

답변

0

가입의 필수이 파일을 먼저 정렬해야한다는 것입니다.

$ sort File1.csv > File1.sorted.csv 

$ sort File2.csv > File2.sorted.csv 

$ join -t, File1.sorted.csv File2.sorted.csv 
1234234,asadasdas!w2eaesfd+smakdnjads,"points-ka" 
2324324,asadasdas!w2eaesfd+smasdasdfadewe,"points-ka" 
+0

하나의 파일이 25GB이므로 분류가 여기에서 작동하지 않습니다. 메모리가 부족합니다 ... 다른 대안을 제공 할 수 있습니까? – Aki008

+0

어떤 방법 으로든 도움이됩니까? http://stackoverflow.com/questions/4544709/compare-two-files-line-by-line-and-generate-the-difference-in-another-file – Kokkie

1

조인이 작동하려면 파일을 조인 키로 정렬해야합니다.

sort file1.csv > file1sorted.csv 
sort file2.csv > file2sorted.csv 
join -t, f1s.csv f2s.csv 

1234234,asadasdas!w2eaesfd+smakdnjads,"points-ka" 
2324324,asadasdas!w2eaesfd+smasdasdfadewe,"points-ka"