Мне нужно создать текстовый файл, который должен содержать случайные текстовые данные, которые могут быть прочитаны человеком. Я знаю, что мы можем использовать /dev/urandom
и /dev/random
для получения случайных данных. Но это не читается людьми. Мне нужно создать файл, который содержит произвольный текстовый формат. Есть ли способ сделать это?
4 ответа
Мы можем сделать это с помощью следующей команды
base64 /dev/urandom | head -c 10000000 > file.txt
Создает файл с именем file.txt размером 10 МБ.
получить вывод:
tr -dc A-Za-z0-9 </dev/urandom
и передать его в файл.
Вы можете использовать команду head с -c или -n, чтобы ограничить размер файла
Пример создания файла размером 1 КБ a.txt:
tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt
Кажется, base64
выводит только буквенно-цифровые символы плюс /
и +
.
Мне нравится это, чтобы получить больше знаков препинания, например
'[:punct:]'
Punctuation characters; in the 'C' locale and ASCII character
encoding, this is ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \
] ^ _ ` { | } ~
Так что используйте это:
'[:graph:]'
Graphical characters: '[:alnum:]' and '[:punct:]'
и используйте tr
для удаления одинарных кавычек 'backticks `и backslashes \
tr -dc '[:graph:]' < /dev/urandom | tr -d \''\\'\` | head -c [size]
опция -c
size для head
может иметь суффикс множителя: b 512, кБ 1000, K 1024, МБ 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024 и т. д. для T, P, E, Z, Y.
Если у вас нет /dev /urandom (потому что, возможно, вы используете консоль GitBash), вы можете использовать:
openssl rand 33000 -base64 -out dump.txt