Come creare un file casuale .txt (testo leggibile come ascii) in Linux


43

Devo creare un file di testo che dovrebbe contenere dati di testo casuali che possono essere letti da umani. So che possiamo usare /dev/urandome /dev/randomper ottenere dati casuali. Ma non è leggibile dagli umani. Devo creare un file che contenga un formato di testo casuale. C'è un modo per farlo?


1
"Leggibile dagli umani" come nel senso reale? Frasi complete? O solo alcune parole del dizionario?
slhck,

A seconda della definizione di "casuale" e di ciò che stai tentando di realizzare, ci sono un certo numero di generatori di Lorem Ipsum disponibili o accessibili da Linux, spesso scaricabili dal repository della tua distribuzione. Vedi C'è qualcosa come un generatore di ipsum lorem? , Generatore ipsum lorem offline , aur.archlinux.org/packages/lorem-ipsum-generator , ecc.
fixer1234

Risposte:


93

Possiamo farlo seguendo il comando

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

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


1
Questo fantastico, aggiunge anche una nuova riga ogni 76 caratteri.
Wisbucky,

15

ottenere l'output di:

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

e instradalo in un file.

Puoi usare il comando head con -c o -n per limitare la dimensione del file

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

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

Puoi anche usare al [:alnum:]posto di A-Za-z0-9. Inoltre, se vuoi che vengano cosparsi spazi e newline, puoi fare questa variazione:tr -dc '[:alnum:] \n' ...
wisbucky,

4

base64sembra generare solo caratteri alfanumerici più /e +.

Mi piace questo per ottenere più caratteri di "punteggiatura", come

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

Quindi usa questo:

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

e usare trper rimuovere virgolette singole 'backtick' e barre rovesciate \

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

l' -copzione dimensione headpuò 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 per T, P , E, Z, Y.


3

Se non hai / dev / urandom (perché forse stai usando una console GitBash), puoi usare:

openssl rand 33000 -base64 -out dump.txt

3

Se vuoi attenersi alle parole del dizionario reale usa quel trucco:

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

Nota che non specifichi la geometria (quante parole per riga, quante linee?)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.