【发布时间】:2013-08-05 15:40:33
【问题描述】:
我正在尝试删除具有 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,从错误消息来看,它看起来像 Cygwin,这样的文件不应该有任何问题。我建议检查所有磁盘以确保其中一个没有被临时文件填满。
标签: exception sorting large-files stack-dump