Можно ли создать ряд текстовых файлов с именами на основе шаблона и заполнить их символами X из /dev/urandom?

Есть ли сценарий/инструмент, который позволит мне создавать N файлов по шаблону типа «[user-defined-string]-N», где N — постепенно увеличивающиеся числа, идеально начинающиеся с 0 до достижения 10, и содержимое файлов быть уникальными, чтобы они не помечались при поиске дубликатов файлов?

Пример:

      user-defined-string-01
user-defined-string-01
user-defined-string-02
user-defined-string-03
user-defined-string-04
user-defined-string-05
user-defined-string-06
user-defined-string-07
user-defined-string-08
user-defined-string-09
user-defined-string-10

и так за заданное количество итераций создать нужное количество файлов?

Я создавал их вручную (в виде текстовых файлов, имя файла которых копировалось и вставлялось как содержимое), но это отнимало много времени. Я использую эти файлы в качестве заполнителей, которые удаляются, когда я получаю связанный файл, и это простой способ увидеть, какой файл я готов/ожидаю получить. Мне нужно иметь возможность каждый раз использовать другую определяемую пользователем строку, поскольку имена не имеют значения.

Я думал, может быть, передать небольшую часть содержимого /dev/urandom в каждый файл, чтобы добиться уникальности, но я все еще в полной растерянности относительно того, как сгенерировать желаемое количество файлов с желаемой схемой именования. У меня практически нет опыта написания сценариев, и я фактически использую Windows большую часть времени, но полагаю, что, поскольку у меня также установлена ​​​​Ubuntu, у меня, вероятно, больше шансов достичь этого с помощью Linux (а затем, возможно, установить WSL на Windows и посмотреть, позволит ли это мне использовать скрипт без загрузки в Ubuntu)

2 ответа

Одним из вариантов может быть передача данных вsplitполезность

       NAME
       split - split a file into pieces

SYNOPSIS
       split [OPTION]... [FILE [PREFIX]]

DESCRIPTION
       Output  pieces of FILE to PREFIXaa, PREFIXab, ...; default size is 1000
       lines, and default PREFIX is 'x'.

       With no FILE, or when FILE is -, read standard input.

Бывший. прочитать 5 (по умолчанию 512 байт) блоков из /dev/urandom с помощьюddи создайте 5 файлов с префиксомuser-defined-string-и двузначные числовые суффиксы, начинающиеся с00:

      dd if=/dev/urandom count=5 | split -b 512 --numeric-suffixes - user-defined-string-

Вbash, вы можете использоватьfor ...; do ...; doneцикл с расширением фигурных скобок ( например, {00..10}или {000..999}и др. ) сhead -c 256для чтения 256 байт (IMO больше, чем это, является чрезмерным убийством для вашей цели и пустой тратой дискового пространства и, вероятно, даже меньше, чем это будет делать ) из/dev/urandomи перенаправление оболочки>написатьuser-defined-string-+suffix( число между 01и 10) файл примерно так:

      for i in {01..10}; do head -c 256 /dev/urandom > "user-defined-string-""$i"; done
Другие вопросы по тегам