Sir*_*ert 2 linux large-files uniq
我有一个非常大的数据文件(255G; 3,192,563,934行)。不幸的是,我的设备上只有204G的可用空间(没有其他我可以使用的设备)。我做了一个随机样本,发现在给定的100K行中,大约有10K唯一行...但是文件未排序。
通常我会说:
pv myfile.data | sort | uniq > myfile.data.uniq
Run Code Online (Sandbox Code Playgroud)
并让它运行一天左右。在这种情况下,这是行不通的,因为我的设备上没有足够的空间来存放临时文件。
我当时想我可以使用split,并且一次可以uniq在500K行上进行流传输到一个新文件中。有没有办法做这样的事情?
我以为我可以做类似的事情
tail -100000 myfile.data | sort | uniq >> myfile.uniq && trunc --magicstuff myfile.data
Run Code Online (Sandbox Code Playgroud)
但我想不出一种方法来正确截断文件。
使用sort -u代替sort | uniq
这样可以sort更早地丢弃重复项,并且GNU coreutils非常聪明,可以利用这一点。
| 归档时间: |
|
| 查看次数: |
2556 次 |
| 最近记录: |