我需要创建一个文本文件,其中包含人类可以读取的随机文本数据。我知道我们可以使用/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、G 1024*1024*1024,等等,对于T、P、E、Z、Y。