Как я генерирую пустые файлы с именами, случайным образом взятыми от входного текстового файла?

Я хотел бы генерировать 20 (пустых) файлов, каждое именованное использование 10 символьных строк, выбранных случайным образом из файла "test.txt" (вручную, генерируют файл test.txt).

Как сделать эту задачу?

-2
задан 21 November 2018 в 07:18

2 ответа

Принятие Вас уже имеет строки в test.txt, и они - все 10 широких символов, и они - тот на строку:

shuf -n 20 test.txt | xargs touch

shuf переставит содержание test.txt и распечатайте первые 20 строк, затем xargs возьмет тот вывод и преобразует его в аргументы в пользу touch, который создаст файлы с помощью тех аргументов.

2
ответ дан 27 October 2019 в 02:36

Используя просто удар, без любых внешних команд:

mapfile names < test.txt # save filenames in array
for ((i = 0; i < 20; i++)) # loop 20 times
do
    ind=$((RANDOM % ${#names[@]}))  # take random value less than length of array
    > "${names[$ind]}"      # redirection creates empty file
    unset names[$ind]       # remove used filename from array
    names=( "${names[@]}" ) # recreate array to remove gaps
done
1
ответ дан 27 October 2019 в 02:36

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

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