
我需要創建一個文字文件,其中應包含人類可以讀取的隨機文字資料。我知道我們可以使用/dev/urandom
和/dev/random
來獲取隨機數據。但它不是人類可讀的。我需要建立一個包含隨機文字格式的文件。有什麼辦法可以做到這一點嗎?
答案1
我們可以透過以下命令來完成
base64 /dev/urandom | head -c 10000000 > file.txt
它會建立一個名為 file.txt 的文件,大小為 10 MB。
答案2
得到輸出:
tr -dc A-Za-z0-9 </dev/urandom
並將其通過管道傳輸到文件。
您可以使用頭使用 -c 或 -n 指令限製檔案大小
產生 1kB 檔案 a.txt 的範例:
tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt
答案3
該wamerican
軟體包提供了 下可用的單字詞典/usr/share/dict/words
。
您可以使用以下技巧來使用它們:
cat /usr/share/dict/words | sort -R | head -1024 > file.txt
請注意,您沒有指定幾何形狀(每行有多少個單詞,有多少行?)
答案4
base64
似乎只輸出字母數字字元加/
和+
。
我喜歡這樣獲得更多“標點符號”字符,例如
'[:punct:]'
Punctuation characters; in the 'C' locale and ASCII character
encoding, this is ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \
] ^ _ ` { | } ~
所以用這個:
'[:graph:]'
Graphical characters: '[:alnum:]' and '[:punct:]'
並用於tr
刪除單引號 ' 反引號 ` 和反斜線 \
tr -dc '[:graph:]' < /dev/urandom | tr -d \''\\'\` | head -c [size]
尺寸-c
選項head
可以有乘數字尾:b 512、kB 1000、K 1024、MB 1000*1000、M 1024*1024、GB 1000*1000*1000*1000、M 1024*1024、GB 1000*1000*1000、G 1024*1024*1024,依此類,E、P ,Z,Y。