以随机顺序将 0 到大数(包括两者)之间的所有数字写入文件

以随机顺序将 0 到大数(包括两者)之间的所有数字写入文件

对于我想要进行的模拟,我想要一个数字范围从 0 到 2^33 的文本文件,这是一个巨大的数字。我用过这个命令:

seq 0 Number >> OUTPUT FILE

但这非常慢。该文件将近94 GB,所以我们无法使用shuf。然后我已经使用了泰拉舒夫由 Alexandres 撰写,这也花费了相当多的时间。尽管我已经完成了我想做的事情,但我想知道是否有一种更快的方法可以在单个命令中完成此操作,以及是否有任何方法可以真正随机化这些数字的顺序

笔记:尽管我已经使用 Linux 很长时间了,但我对 bash 脚本的了解非常有限。所以请尽量给出初学者能理解的答案。

答案1

在这种情况下,最好的解决方案可能是修改shuf或类似程序的源代码。

然后你可以扔掉输入部分,只使用洗牌部分并写出索引。不将索引转换为字符串而是将它们写入不带换行符的二进制文件可能会很有用,因为文件会小得多(因此读取速度更快)。

相关内容