나는 항상 wc-l 명령을 사용하여 줄 수를 계산합니다. 그러나 내 파일 (900 밀)이 크면 결과를 보려면 5 분 이상 기다려야합니다. 더 나은 아이디어가 있습니까?
정확한 사용 사례는 무엇입니까?
—
scravy
라인 계산은 선형 시간 작업이므로 더 빠른 알고리즘 트릭을 보지 못합니다. 어쩌면 파일을 여러 개의 덩어리로 나누고 스레드하는 도구를 직접 만들 수도 있지만 다시는 이미 그 일을 할
—
zneak
wc -l
수 있습니다.
wc-l이 어떻게 작동하는지 말하기는 어렵습니다. 소스가 거기에 있다고 상상할 것입니다 ... 그러나 모든 문자를 세어 새로운 줄 문자와 비교하면 비효율적입니다. 이 경우 데이터 세트에 대해 더 많이 알고 있다면 속일 수 있습니다. 줄의 길이가 모두 같거나 가까이 있으면 청크의 모든 n 바이트 만 줄 바꿈을 확인할 수 있고 그렇지 않은 경우 새 n 줄을 찾아 다음 n 바이트를 걷습니다. 그런 다음 바이트 수가 적은 바이트를 확인합니다
병목 현상은 파일이 모두 RAM에 캐시되어 있지 않으면 계산을 수행하는 코드가 아닌 디스크 I / O입니다.
—
Barmar
더 많은 답변이있는 거의 동일한 질문에 대해서는 stackoverflow.com/questions/12716570/count-lines-in-large-files 를 참조하십시오 .
—
야콥