%20en%20Linux.png)
Necesito crear un archivo de texto que contenga datos de texto aleatorios que puedan ser leídos por humanos. Sé que podemos usar /dev/urandom
y /dev/random
para obtener datos aleatorios. Pero los humanos no pueden leerlo. Necesito crear un archivo que contenga un formato de texto aleatorio. ¿Hay alguna forma de hacer eso?
Respuesta1
Podemos hacerlo siguiendo el comando.
base64 /dev/urandom | head -c 10000000 > file.txt
Crea un archivo con el nombre file.txt y un tamaño de 10 MB.
Respuesta2
obtener la salida de:
tr -dc A-Za-z0-9 </dev/urandom
y canalícelo a un archivo.
Puedes usarcabezacomando con -c o -n para limitar el tamaño del archivo
Ejemplo para generar un archivo de 1kB a.txt:
tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt
Respuesta3
El wamerican
paquete proporciona un diccionario de palabras disponibles en /usr/share/dict/words
.
Puedes utilizar el siguiente truco para utilizarlos:
cat /usr/share/dict/words | sort -R | head -1024 > file.txt
Tenga en cuenta que no especifica la geometría (¿cuántas palabras por línea, cuántas líneas?)
Respuesta4
base64
Parece que solo genera caracteres alfanuméricos más /
y +
.
Me gusta esto para obtener más caracteres de "puntuación", como
'[:punct:]'
Punctuation characters; in the 'C' locale and ASCII character
encoding, this is ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \
] ^ _ ` { | } ~
Entonces usa esto:
'[:graph:]'
Graphical characters: '[:alnum:]' and '[:punct:]'
y utilícelo tr
para eliminar comillas simples 'comillas invertidas' y barras invertidas \
tr -dc '[:graph:]' < /dev/urandom | tr -d \''\\'\` | head -c [size]
la -c
opción de tamaño head
puede tener un sufijo multiplicador: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, y así sucesivamente para T, P , E, Z, Y.