0

我正在尝试删除具有 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 中手动执行此操作。

4

2 回答 2

0

以下 awk 命令似乎是摆脱 uniqe 值的更快方法:

awk '!v[$0]++' $FILE2 > tmp.csv

其中 $FILE2 是具有重复值的文件名。

于 2013-12-26T19:05:22.730 回答
0

听起来您的排序命令已损坏。由于路径说 cygwin,我假设这是 GNU 排序,如果有足够的内存和磁盘空间,它通常应该没有问题。尝试使用标志来调整它使用磁盘的位置和数量:http ://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html

于 2013-08-05T16:23:31.877 回答