Как создать случайный файл .txt (текст, читаемый человеком, например ascii) в Linux

Как создать случайный файл .txt (текст, читаемый человеком, например ascii) в Linux

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

решение1

Мы можем сделать это, выполнив следующую команду:

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

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

решение2

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

tr -dc A-Za-z0-9 </dev/urandom 

и передать его в файл.

Вы можете использоватьголовакоманда с -c или -n для ограничения размера файла

пример создания файла a.txt размером 1 КБ:

tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt

решение3

Пакет wamericanсодержит словарь слов, доступных под /usr/share/dict/words.

Для их использования можно использовать следующий трюк:

cat /usr/share/dict/words | sort -R | head -1024 > file.txt

Обратите внимание, что вы не указываете геометрию (сколько слов в строке, сколько строк?)

решение4

base64похоже, выводит только буквенно-цифровые символы плюс /и +.

Мне нравится этот способ, позволяющий получить больше знаков «пунктуации», например

'[:punct:]'
  Punctuation characters; in the 'C' locale and ASCII character
  encoding, this is ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \
  ] ^ _ ` { | } ~

Итак, используйте это:

'[:graph:]'
     Graphical characters: '[:alnum:]' and '[:punct:]'

и используйте trдля удаления одинарных кавычек ' обратные кавычки ` и обратные косые черты \

tr -dc '[:graph:]' < /dev/urandom | tr -d \''\\'\` | head -c [size]

опция -cразмера headможет иметь суффикс множителя: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024 и т. д. для T, P, E, Z, Y.

Связанный контент