有没有办法随机的我从字典数据库dict-wn
(例如 freedict 的软件包)中找到了单词?我正在寻找一种方法来做到这一点,方法是使用 bash 脚本或尝试使用命令工具(如果可用)。
答案1
如果单词表是每行一个单词的纯文本文件,则一个选项是命令,shuf
例如
$ shuf -n5 /usr/share/dict/american-english
resuscitated
Lawson
concatenate
nonsmoker's
balmiest
看man shuf
SHUF(1) User Commands SHUF(1)
NAME
shuf - generate random permutations
SYNOPSIS
shuf [OPTION]... [FILE]
shuf -e [OPTION]... [ARG]...
shuf -i LO-HI [OPTION]...
DESCRIPTION
Write a random permutation of the input lines to standard output.
答案2
我倾向于shuf
从文件中提取行。我们还需要小心单词,因为这是一个制表符分隔的文件,而不仅仅是空格。
$ shuf -n5 /usr/share/dictd/wn.index | cut -d$'\t' -f1
table game
parsi
tetraneuris grandiflora
synonymously
decimal digit
shuf
这里需要 0.011 秒。sort -R
(即使没有awk
)需要 2.427 秒。这是因为 shuf 只是在文件中查找n排序读取和处理每一行时的次数...在本例中是 147311 行。
答案3
获取随机单词的方法有很多种。示例:获取五个单词:
$ sort -R /usr/share/dictd/freedict-nld-eng.index | awk 'NR <= 5 { print $1 }'
verslappen
sport
libretto
golf
kerk
请参阅man sort
了解选项的含义-R
(提示:随机)。awk 表达式筛选前五条记录(行)并打印第一个字段(而不是其他列)。