Cómo crear un archivo .txt aleatorio (texto legible por humanos como ascii) en Linux

Cómo crear un archivo .txt aleatorio (texto legible por humanos como ascii) en Linux

Necesito crear un archivo de texto que contenga datos de texto aleatorios que puedan ser leídos por humanos. Sé que podemos usar /dev/urandomy /dev/randompara 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 wamericanpaquete 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

base64Parece 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 trpara eliminar comillas simples 'comillas invertidas' y barras invertidas \

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

la -copción de tamaño headpuede 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.

información relacionada