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

43

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

Чинно
источник
1
«Чтение людьми», как в реальном смысле? Полные предложения? Или просто несколько словарных слов?
Slhck
В зависимости от определения «случайного» и того, что вы пытаетесь достичь, существует несколько генераторов Lorem Ipsum, доступных или доступных в Linux, которые часто можно загрузить из репозитория вашего дистрибутива. Видите ли есть что-то вроде генератора lorem ipsum? , Автономный генератор lorem ipsum , aur.archlinux.org/packages/lorem-ipsum-generator и т. Д.
fixer1234

Ответы:

93

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

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

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

Чинно
источник
1
Это здорово, он также добавляет новую строку каждые 76 символов.
Висбуки
15

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

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
user1403360
источник
Вы также можете использовать [:alnum:]вместо A-Za-z0-9. Кроме того, если вы хотите tr -dc '[:alnum:] \n' ...
добавить
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вариант размера , чтобы headможет иметь мультипликативный суффикс: B 512, кБ 1000, К 1024, МБ 1000 * 1000, М 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024, и так далее для Т, Р , E, Z, Y.

Xen2050
источник
3

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

openssl rand 33000 -base64 -out dump.txt
doughgle
источник
3

Если вы хотите придерживаться реальных словарных слов, используйте этот трюк:

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

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

милостивый
источник