如何从电子词典数据库或文本文件中提取随机单词?

pre*_*ise 11 command-line

有没有办法从字典数据库中获取随机单词,比如从dict-wn或 freedict 的包中获取?我正在寻找一种方法来做到这一点,要么使用 bash 脚本,要么尝试使用命令工具(如果可用)。

ste*_*ver 22

如果 wordlist 是每行一个单词的纯文本文件,则一个选项是shuf命令,例如

$ shuf -n5 /usr/share/dict/american-english
resuscitated
Lawson
concatenate
nonsmoker's
balmiest
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)


Oli*_*Oli 6

我更喜欢shuf从文件中提取行。我们还需要小心这些单词,因为它是一个制表符分隔的文件,而不仅仅是空格。

$ shuf -n5 /usr/share/dictd/wn.index | cut -d$'\t' -f1
table game
parsi
tetraneuris grandiflora
synonymously
decimal digit
Run Code Online (Sandbox Code Playgroud)

shuf这里需要 0.011 秒。sort -R(即使没有awk)也需要 2.427 秒。这是因为 shuf 只是在文件中查找n次,而 sort 正在读取和处理每一行......在这种情况下是 147311 行。