180 만 레코드가있는 파일에서 동일한 줄을 제거하고 새 파일을 만들려고합니다. 다음 명령을 사용 :스크립트를 사용하여 180 만 레코드로 파일 정렬
sort tmp1.csv | uniq -c | sort -nr > tmp2.csv
스크립트를 실행하면 다음과 같은 정보를 사용하여 새 파일 sort.exe.stackdump
를 만듭니다
"Exception: STATUS_ACCESS_VIOLATION at rip=00180144805
..
..
program=C:\cygwin64\bin\sort.exe, pid 6136, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B"
스크립트는 10 개 라인과 작은 파일을 사용할 수 있습니다. sort.exe
처럼 많은 레코드를 처리 할 수 없습니다. 180 만 개가 넘는 레코드가있는 대용량 파일로 어떻게 작업합니까? 우리는 ACCESS 이외의 데이터베이스가 없으며 ACCESS에서 수동으로이 작업을 수행하려고했습니다.
SORT.EXE (무엇이든간에)가 재귀 알고리즘을 사용하고있는 것처럼 보입니다. 스택을 불고 있습니다. CSV를 Access로 가져 와서 ORDER BY 절을 사용하는 쿼리에서 정렬하고 새 CSV로 내보내는 것이 어떻습니까? –
180 만 건의 기록은 실제로 그렇게 많이 말하지 않습니다. 각 레코드의 크기 (또는 파일의 크기)는 얼마나됩니까? – Dukeling
@Dukeling, 오류 메시지에서 Cygwin과 같은 파일에 문제가 없어야합니다. 모든 디스크가 임시 파일로 가득 차 있지는 않은지 확인하는 것이 좋습니다. –