我正在尝试删除包含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中手动执行此操作。
答案 0 :(得分:0)
听起来您的排序命令已被破坏。由于路径说cygwin,我假设这是GNU排序,在给定足够的内存和磁盘空间的情况下,这通常应该没有问题。尝试使用标记来调整它使用磁盘的位置和数量:http://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html
答案 1 :(得分:0)
以下awk命令似乎是一种更快的方法来摆脱uniqe值:
awk'!v [$ 0] ++'$ FILE2> tmp.csv
其中$ FILE2是具有重复值的文件名。