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