使用脚本对包含180万条记录的文件进行排序



我正试图删除一个有180万条记录的文件中相同的行,并创建一个新文件。使用以下命令:

sort tmp1.csv | uniq -c | sort -nr > tmp2.csv

运行脚本会创建一个新文件sort.exe.stackdump,其中包含以下信息:

"Exception: STATUS_ACCESS_VIOLATION at rip=00180144805
..
..
program=C:cygwin64binsort.exe, pid 6136, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B"

该脚本适用于一个有10行的小文件。似乎sort.exe无法处理这么多记录。如何处理这样一个包含180多万条记录的大文件?除了ACCESS,我们没有其他数据库,我试图在ACCESS中手动执行此操作。

听起来你的排序命令坏了。由于路径上写的是cygwin,我假设这是GNU类型,如果有足够的内存和磁盘空间,它通常不会对这个任务产生问题。尝试使用标志来调整磁盘的使用位置和使用量:http://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html

下面的awk命令似乎是一种更快地消除uniqe值的方法:

哇!v[$0]++'$FILE2>tmp.sv

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

最新更新