37

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

4 ответа4

82

Мы можем сделать это с помощью следующей команды

base64 /dev/urandom | head -c 10000000 > file.txt

Создает файл с именем file.txt размером 10 МБ.

11

получить вывод:

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
4

Кажется, 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.

2

Если у вас нет /dev /urandom (потому что, возможно, вы используете консоль GitBash), вы можете использовать:

openssl rand 33000 -base64 -out dump.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .