Como criar um arquivo aleatório .txt (texto legível por humanos como ascii) no linux

36

Eu preciso criar um arquivo de texto que contenha dados de texto aleatórios que possam ser lidos por humanos. Eu sei que podemos usar /dev/urandom e /dev/random para obter dados aleatórios. Mas não é legível por humanos. Eu preciso criar um arquivo que contenha formato de texto aleatório. Existe alguma maneira de fazer isso?

    
por Chinna 23.12.2013 / 12:55

4 respostas

77

Podemos fazer isso seguindo o comando

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

Cria um arquivo com o tamanho do nome do arquivo.txt de 10 MB.

    
por 23.12.2013 / 13:42
10

obtenha a saída de:

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

e canalize-o para um arquivo.

Você pode usar o comando head com -c ou -n para limitar o tamanho do arquivo

exemplo para gerar um arquivo de 1kB a.txt:

tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt
    
por 23.12.2013 / 13:16
4

base64 parece produzir apenas caracteres alfanuméricos mais / e + .

Eu gosto disso para obter mais caracteres de "pontuação", como

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

Então use isso:

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

e use tr para remover aspas simples e backslashes \

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

a opção -c size para head pode ter um sufixo multiplicador: b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB        1000 * 1000 * 1000, G 1024 * 1024 * 1024 e assim por diante para T, P, E, Z, Y.

    
por 07.11.2015 / 18:21
2

Se você não tem / dev / urandom (porque talvez você esteja usando um console do GitBash), você pode usar:

openssl rand 33000 -base64 -out dump.txt
    
por 18.04.2016 / 11:25

Tags