Можно ли создать ряд текстовых файлов с именами на основе шаблона и заполнить их символами 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