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


43

Preciso criar um arquivo de texto que deve conter dados 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?


1
"Legível por seres humanos" como em fazer sentido real? Frases completas? Ou apenas algumas palavras do dicionário?
slhck

Dependendo da definição de "aleatório" e do que você está tentando realizar, há vários geradores Lorem Ipsum disponíveis ou acessíveis no Linux, geralmente disponíveis para download no repositório da sua distribuição. Consulte Existe algo como um gerador de lorem ipsum? , Gerador de lorem ipsum offline , aur.archlinux.org/packages/lorem-ipsum-generator , etc.
fixer1234

Respostas:


93

Podemos fazer isso seguindo o comando

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

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


1
Isso é ótimo, mas também adiciona uma nova linha a cada 76 caracteres.
wisbucky 28/08

15

obter a saída de:

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

e coloque-o em 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

Você também pode usar em [:alnum:]vez de A-Za-z0-9. Além disso, se você quiser que os espaços e as novas linhas sejam polvilhados, você pode fazer esta variação:tr -dc '[:alnum:] \n' ...
wisbucky 28/08

4

base64parece gerar 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 trpara remover aspas simples e barras invertidas \

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

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


3

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

openssl rand 33000 -base64 -out dump.txt

3

Se você deseja manter as palavras reais do dicionário, use esse truque:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.