Come creare un file random .txt (text umano leggibile come ascii) in linux

Ho bisogno di creare un file di text che dovrebbe contenere dati di text casuali che possono essere letti dall'uomo. So che possiamo usare /dev/urandom e /dev/random per get dati casuali. Ma non è leggibile dagli esseri umani. Devo creare un file che contiene il formato di text random. C'è un modo per farlo?

Possiamo farlo seguendo il command

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

Crea un file con dimensione file.txt di 10 MB.

get l'output di:

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

e lo pipa su un file.

È ansible utilizzare il command head con -c o -n per limitare la dimensione del file

esempio per generare un file a.txt da 1 kB:

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

base64 sembra solo emettere caratteri alfanumbersci plus / e + .

Mi piace questo per get più personaggi di "punteggiatura", come

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

Quindi utilizzare questo:

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

e usate tr per rimuovere singole citazioni 'backticks `e backslashes \

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

l'opzione -c size per head può avere un suffisso moltiplicatore: b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024 e così via T, P, E, Z, Y.

Se non si dispone di / dev / urandom (perché forse si utilizza una console GitBash), è ansible utilizzare:

 openssl rand 33000 -base64 -out dump.txt