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

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

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/urandome /dev/randompara obter dados aleatórios. Mas não é legível por humanos. Preciso criar um arquivo que contenha formato de texto aleatório. Existe alguma maneira de fazer isso?

Responder1

Podemos fazer isso seguindo o comando

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

Ele cria um arquivo com nome file.txt de tamanho de 10 MB.

Responder2

obter a saída de:

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

e canalize-o para um arquivo.

Você pode usarcabeçacomando com -c ou -n para limitar o tamanho do arquivo

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

tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt

Responder3

O wamericanpacote fornece um dicionário de palavras disponível em /usr/share/dict/words.

Você pode usar o seguinte truque para usá-los:

cat /usr/share/dict/words | sort -R | head -1024 > file.txt

Observe que você não especifica a geometria (quantas palavras por linha, quantas linhas?)

Responder4

base64parece gerar apenas caracteres alfanuméricos mais /e +.

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 isto:

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

e use trpara remover aspas simples 'crases' e barras invertidas \

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

a -copção de tamanho headpode 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.

informação relacionada