Linux'ta rastgele bir .txt (ascii gibi insan tarafından okunabilen metin) dosyası nasıl oluşturulur


43

İnsan tarafından okunabilecek rastgele metin verilerini içermesi gereken bir metin dosyası oluşturmam gerekiyor. Bence kullanabileceğinizi biliyor /dev/urandomve /dev/randomrastgele verileri almak için. Ancak insanlar tarafından okunamaz. Rasgele metin formatı içeren bir dosya oluşturmam gerekiyor. Bunu yapmanın bir yolu var mı?


1
Gerçek anlamda "insanlar tarafından okunabilir" mi? Tam cümleler? Ya da sadece bazı sözlük kelimeler?
— slhck

"Rastgele" tanımına ve ne yapmaya çalıştığınıza bağlı olarak, Linux’ta bulunan ve genellikle deponuzdan indirilebilen bir dizi Lorem Ipsum jeneratörü vardır. Bakınız Lorem Ipsum Jeneratör gibi bir şey var mı? , Çevrimdışı lorem ipsum generator , aur.archlinux.org/packages/lorem-ipsum-generator , vb.
— fixer1234

Yanıtlar:


93

Komutu takip ederek yapabiliriz.

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

Dosya adı file.txt 10 MB büyüklüğünde bir dosya oluşturur.


1
Bu harika, aynı zamanda her 76 karakterde bir yeni satır ekler.
— wisbucky

15

çıktı almak:

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

ve bir dosyaya aktarın.

Dosya boyutunu sınırlamak için -c veya -n tuşlarıyla head komutunu kullanabilirsiniz.

Bir 1kB dosyası oluşturmak için örnek a.txt:

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

Bunun [:alnum:]yerine de kullanabilirsiniz A-Za-z0-9. Ayrıca, boşlukları ve yeni satırları serpiştirmek istiyorsanız, şu varyasyonu yapabilirsiniz:tr -dc '[:alnum:] \n' ...
— wisbucky

4

base64Sadece çıkış alfanümerik karakterler artı görünüyor /ve +.

Bunun gibi daha fazla "noktalama işareti" karakteri almayı severim

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

Yani bunu kullanın:

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

ve trtek tırnak işaretleri 'backticks' ve ters eğik çizgi \ kaldırmak için kullanın .

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

çarpan sonekine sahip olabilmek için -cboyut seçeneği head: b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024 ve benzeri T, P için , E, Z, Y.


3

/ Dev / urandom'a sahip değilseniz (belki bir GitBash konsolu kullanıyorsanız), şunları kullanabilirsiniz:

openssl rand 33000 -base64 -out dump.txt

3

Gerçek sözlüğe sadık kalmak istiyorsanız bu numarayı kullanın:

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

Geometriyi belirtmediğinizi unutmayın (satır başına kaç kelime, kaç satır?)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.