큰 파일 (40 억 개의 행)이 있는데 각 행에는 한 단어가 들어 있습니다. 나는 독특한 단어들과 그에 상응하는 수의 목록을 찾고 싶다.큰 파일에서 고유 한 행을 찾는 방법은 무엇입니까?
sort largefile |uniq -c >outfile
을하지만 여전히 실행되지 않고 출력된다
나는 시도했다.awk '!arr[$1]++' largefile >outfile
를하지만 횟수를 인쇄하지하지 않습니다
그때 나는 시도했다. awk을 사용하여 카운트도 인쇄하려면 어떻게해야합니까? 또는 대용량 파일을 처리 할 수있는 다른 대체 접근 방식을 사용합니다.
편집 : 파일에 약 1,700 만 개의 고유 단어가 있습니다.
고양이 대형 파일 | awk '{printf ("% s % d \ n", $ 1, arr [$ 1] ++)}'| sort -n – Freddy
"불량 데이터가 있습니다"라고 말하면서 "어리석은 데이터 구조를 잘못 사용하고 있습니다." 40 억 가지가 있다면 속도 최적화를 위해 플랫 파일을 사용하는 것이 잘못된 방법 일 수 있습니다. –
만약'sort'가 여분의 RAM을 많이 사용한다고 말하면 훨씬 더 빠르게 동작 할 것입니다. 예를 들어'sort -S 8G ...'8G 이상의 RAM을 가진 64 비트 시스템에서 실행 중일 때 (정렬은 64 비트 실행 파일입니다) –