Як створити випадковий .txt (людський читаний текст на зразок ascii) у Linux


43

Мені потрібно створити текстовий файл, який повинен містити випадкові текстові дані, які може читати людина. Я знаю, що ми можемо використовувати /dev/urandomі /dev/randomдля отримання випадкових даних. Але це не читається людьми. Мені потрібно створити файл, який містить випадковий текстовий формат. Чи можна це зробити?


1
"Зрозумілий людьми" як у фактичному розумінні? Повні речення? Або просто кілька словникових слів?
slhck

Залежно від визначення "випадкового" та того, що ви намагаєтеся виконати, існує ряд генераторів Lorem Ipsum, доступних у Linux або доступних з них, які часто можна завантажити з сховища вашого дистрибутива. Див. Чи є щось на зразок генератора ipsum lorem? , Offline lorem ipsum generator , aur.archlinux.org/packages/lorem-ipsum-generator тощо
fixer1234

Відповіді:


93

Ми можемо це зробити, виконавши команду

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

Створюється файл з розміром file.txt розміром 10 Мб.


1
Це чудово, він також додає новий рядок кожні 76 символів теж.
wisbucky

15

отримати вихід:

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

і передайте у файл.

Для обмеження розміру файлу можна використовувати головну команду з -c або -n

приклад для створення файлу 1kB a.txt:

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

Ви також можете використовувати [:alnum:]замість A-Za-z0-9. Крім того, якщо ви хочете, щоб пробіли та нові рядки посипалися, ви можете зробити цю варіацію:tr -dc '[:alnum:] \n' ...
wisbucky

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, кБ 1000, в 1024, МБ 1000 * 1000, М 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024, і так далі для Т, Р , E, Z, Y.


3

Якщо у вас немає / dev / urandom (тому що, можливо, ви використовуєте консоль GitBash), ви можете використовувати:

openssl rand 33000 -base64 -out dump.txt

3

Якщо ви хочете дотримуватися справжніх словникових слів, використовуйте цю хитрість:

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

Зауважте, що ви не вказуєте геометрію (скільки слів на рядок, скільки рядків?)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.