Переименование файла на FTP-сервере с переменной Timestamp

Можно использовать GNU seq + sort, чтобы сначала сформировать список уникальных целых чисел 1B (в последовательном порядке), а затем sort -R, чтобы перетасовать их случайным образом). Хотя это неэффективно для процессора, это не зависит от памяти, поскольку sort будет использовать столько памяти, сколько доступно, а затем вернется к временным файлам.

Это займет несколько минут (в зависимости от CPU/Ram/disk вашей машины):

$ seq 1000000000 > 1B.txt

$ ls -lhog 1B.txt 
-rw-rw-r-- 1   9.3G Dec 26 17:31 1B.txt

$ sort -R 1B.txt > 1B.random.txt

Если у вас есть доступ к машине с достаточным количеством RAM, вы можете использовать GNU shuf:

$ shuf -i 1-1000000000 > 1B.random.txt

Эмпирически, shuf потребовалось ~8GB свободной памяти и ~6 минут времени работы на моей машине.

0
15.09.2018, 03:23
0 ответов

Теги

Похожие вопросы