Comment créer un fichier .txt aléatoire (texte lisible humain comme ascii) dans linux

Je dois créer un fichier texte qui doit contenir des données de texte aléatoires qui peuvent être lues par des humains. Je sais que nous pouvons utiliser /dev/urandom et /dev/random pour obtenir des données aléatoires. Mais il n'est pas lisible par les humains. Je dois créer un fichier qui contient un format de texte aléatoire. Y'a-t'il un quelconque moyen d'y arriver?

Nous pouvons le faire en suivant la commande

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

Il crée un fichier avec le nom file.txt de 10 Mo.

Obtenir la sortie de:

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

Et le transmettre à un fichier.

Vous pouvez utiliser la commande head avec -c ou -n pour limiter la taille du fichier

Exemple pour générer un fichier 1kB a.txt:

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

base64 semble donner uniquement des caractères alphanumériques plus / et + .

J'aime que l'on obtienne plus de caractères de «ponctuation», comme

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

Utilisez donc ceci:

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

Et utilisez tr pour supprimer les guillemets simples et les backslashes \

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

L'option de taille -c à la head peut avoir un suffixe multiplicateur: b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024, et ainsi de suite pour T, P, E, Z, Y.

Si vous n'avez pas / dev / urandom (car peut-être que vous utilisez une console GitBash), vous pouvez utiliser:

 openssl rand 33000 -base64 -out dump.txt