我尝试使用 shuf
来随机播放文件,但它花费的时间太长;该进程被托管管理员终止。我有最便宜的 Linux Bluehost 计划。
shuf MMM.csv
文件有44M行,文件大小为7439641823字节,使用sort -R
更糟,考虑将文件拆分成44个文件,但不会很随机,任何想法都会非常感谢
我想要的是打乱文件,然后提取前 10000 行
文件已排序,由于业务原因,10000行无法排序
最佳答案
关键是使用带有 -n(“最多输出 COUNT 行”)选项的“shuf”。
比较:
$ time (seq 1 44000000 | shuf > /tmp/shuffled)
user 0m58.234s
sys 0m4.394s
$ time (seq 1 44000000 | shuf -n 10000 > /tmp/shuffled)
user 0m25.493s
sys 0m1.771s
(这些时间是在一台令人遗憾的旧 2.53GHz Mac 上测得的。)
注意:在某些环境中,“shuf”可能用作“gshuf”。
关于linux - 如何从 4400 万行文件中随机选择 1 万行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34951311/