it-swarm.com.de

Wie erstelle ich eine zufällige .txt (Human readable text like ascii) Datei unter Linux?

Ich muss eine Textdatei erstellen, die zufällige Textdaten enthalten soll, die von Menschen gelesen werden können. Ich weiß, dass wir /dev/urandom und /dev/random verwenden können, um zufällige Daten zu erhalten. Aber es ist für Menschen nicht lesbar. Ich muss eine Datei erstellen, die ein zufälliges Textformat enthält. Gibt es eine Möglichkeit, das zu tun?

39
Chinna

Wir können es tun, indem wir dem Befehl folgen

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

Es wird eine Datei mit dem Namen file.txt mit einer Größe von 10 MB erstellt.

85
Chinna

erhalte die Ausgabe von:

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

und leite es zu einer Datei.

Sie können den Befehl head mit -c oder -n verwenden, um die Dateigröße zu begrenzen

beispiel zum Erzeugen einer 1kB-Datei a.txt:

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

base64 scheint nur alphanumerische Zeichen plus / und + auszugeben.

Ich mag das, um mehr "Interpunktions" -Zeichen zu erhalten, wie

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

Also benutze dies:

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

und benutze tr um einfache Anführungszeichen und Backslashes zu entfernen \

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

die Option -c size für head kann ein Multiplikatorsuffix haben: b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024 usw. für T P, E, Z, Y.

4
Xen2050

Wenn Sie nicht über/dev/urandom verfügen (weil Sie möglicherweise eine GitBash-Konsole verwenden), können Sie Folgendes verwenden:

openssl Rand 33000 -base64 -out dump.txt
3
doughgle

Wenn Sie sich an echte Wörter halten möchten, verwenden Sie diesen Trick:

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

Beachten Sie, dass Sie die Geometrie nicht angeben (wie viele Wörter pro Zeile, wie viele Zeilen?)

2
Clement