Cara membuat file .txt (teks yang dapat dibaca manusia seperti ascii) secara acak di linux


43

Saya perlu membuat file teks yang harus berisi data teks acak yang dapat dibaca oleh manusia. Saya tahu bahwa kita dapat menggunakan /dev/urandomdan /dev/randomuntuk mendapatkan data acak. Tapi itu tidak bisa dibaca oleh manusia. Saya perlu membuat file yang berisi format teks acak. Apakah ada cara untuk melakukan itu?


1
"Dapat dibaca oleh manusia" seperti masuk akal? Kalimat lengkap? Atau hanya beberapa kata kamus?
slhck

Bergantung pada definisi "acak" dan apa yang ingin Anda capai, ada sejumlah generator Lorem Ipsum yang tersedia di, atau dapat diakses dari, Linux, sering kali dapat diunduh dari repositori distro Anda. Lihat Apakah ada sesuatu seperti generator lorem ipsum? , Generator lorem ipsum Offline , aur.archlinux.org/packages/lorem-ipsum-generator , dll.
fixer1234

Jawaban:


93

Kita bisa melakukannya dengan mengikuti perintah

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

Itu menciptakan file dengan nama file.txt ukuran 10 MB.


1
Ini hebat, itu juga menambahkan baris baru setiap 76 karakter juga.
wisbucky

15

dapatkan output dari:

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

dan pipa ke file.

Anda dapat menggunakan perintah head dengan -c atau -n untuk membatasi ukuran file

contoh untuk menghasilkan file 1kB a.txt:

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

Anda juga dapat menggunakan [:alnum:]bukan A-Za-z0-9. Juga, jika Anda ingin spasi dan baris baru ditaburi, Anda dapat melakukan variasi ini:tr -dc '[:alnum:] \n' ...
wisbucky

4

base64tampaknya hanya menghasilkan karakter alfanumerik plus /dan +.

Saya suka ini untuk mendapatkan lebih banyak karakter "tanda baca", seperti

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

Jadi gunakan ini:

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

dan gunakan truntuk menghapus tanda kutip tunggal 'backticks` dan backslash \

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

yang -cukuran pilihan untuk headdapat memiliki multiplier akhiran: b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024, dan seterusnya untuk T, P , E, Z, Y.


3

Jika Anda tidak memiliki / dev / urandom (karena mungkin Anda menggunakan konsol GitBash), Anda dapat menggunakan:

openssl rand 33000 -base64 -out dump.txt

3

Jika Anda ingin tetap menggunakan kata-kata kamus nyata gunakan trik itu:

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

Perhatikan bahwa Anda tidak menentukan geometri (berapa banyak kata per baris, berapa banyak baris?)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.