генерировать 2 случайных файла 500 МБ с некоторыми общими строками

(Привет!)

Мне нужно сгенерировать 2 файла (каждый файл должен быть 500 МБ). И эти 2 файла должны иметь некоторые общие строки (но не обязательно в том же месте в файле)

Я думал о чем-то таком: cat /dev/urandom | tr -dc 'a-f0-9' | fold -w 32 | head -n 30000000 > random.csv, но это не совсем то, что я хочу сделать ...

Можете ли вы предложить мне что-нибудь?

0
задан 19 April 2019 в 17:33

1 ответ

Вот мое предложение из комментария в форме меньшего примера:

    # generate the 2 basic files of 30 lines each
cat /dev/urandom | tr -dc 'a-f0-9' | fold -w 32 | head -n 30 > random1.csv
cat /dev/urandom | tr -dc 'a-f0-9' | fold -w 32 | head -n 30 > random2.csv
    # generate 3 common lines
cat /dev/urandom | tr -dc 'a-f0-9' | fold -w 32 | head -n 3 > common.csv
    # mix the common lines into the 2 files
cat random1.csv common.csv | shuf > random11.csv
cat random2.csv common.csv | shuf > random22.csv

Проверка:

$ cat common.csv
8b1df61042e621bb3cd3ba43942b5ada
71b2368e90c6eb038e84ef29446c0dec
56697847ec43cc181a556625ec880d85
    # select one common line and look for it in the 2 files
$ grep -n 71b2368e90c6eb038e84ef29446c0dec random11.csv random22.csv
random11.csv:13:71b2368e90c6eb038e84ef29446c0dec
random22.csv:9:71b2368e90c6eb038e84ef29446c0dec

Таким образом, одной из общих строк является строка № 13 в первом файл и строка № 9 во втором файле.

Но остерегайтесь необходимых ресурсов, если вы берете 30 миллионов строк вместо 30!

0
ответ дан 19 April 2019 в 17:33

Другие вопросы по тегам:

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