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


43

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 no es legible por los humanos. Necesito crear un archivo que contenga formato de texto aleatorio. ¿Hay alguna forma de hacer eso?


1
¿"Legible por los humanos" como si tuviera sentido real? ¿Oraciones completas? ¿O solo algunas palabras del diccionario?
slhck

Dependiendo de la definición de "aleatorio" y de lo que está tratando de lograr, hay una serie de generadores Lorem Ipsum disponibles o accesibles desde Linux, que a menudo se pueden descargar desde el repositorio de su distribución. Ver ¿Hay algo como un generador de lorem ipsum? , Generador de ipsum lorem sin conexión , aur.archlinux.org/packages/lorem-ipsum-generator , etc.
fixer1234

Respuestas:


93

Podemos hacerlo siguiendo el comando

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

Crea un archivo con el nombre file.txt tamaño de 10 MB.


1
Esto es genial, también agrega una nueva línea cada 76 caracteres también.
wisbucky

15

obtener la salida de:

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

y canalizarlo a un archivo.

Puede usar el comando head 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

También puede usar en [:alnum:]lugar de A-Za-z0-9. Además, si desea que se esparzan espacios y nuevas líneas, puede hacer esta variación:tr -dc '[:alnum:] \n' ...
wisbucky

4

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 se usa 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.


3

Si no tienes / dev / urandom (porque tal vez estás usando una consola GitBash), puedes usar:

openssl rand 33000 -base64 -out dump.txt

3

Si quieres apegarte a palabras reales del diccionario, usa ese truco:

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?)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.