bash 如何从 ispell .mwl 文件中提取所有前缀词

how to extract all prefix words from an ispell .mwl file in bash

我有一个很大的 ispell .mwl 文件,我想删除所有 ispell 后缀以生成一个简单的纯文本单词词典 使用 unix ispell、bash 或 perl 命令。

是否有 ispell 命令选项可以做到这一点?

(在 unix 中,.mwl.gz 文件位于 /usr/share/ispell/ 目录中)

文件的简短摘录(非详尽无遗):

a/MRSY
A'asia
a'body
a'thing
aaa
AAAS
Aaberg/M
Aachen/M
Aaedon/M
AAeE
AAeE's
aaerially
aaerialness
Aaerope/M
AAgr/M
aah/DGS
aal/MS
Aalborg
Aalesund
aalii/MS
Aaliyah/M
Aalst/M
Aalto
aam
Aandahl/M
Aani/M
Aaqbiye/M
Aar/MN
Aara/M
Aarau
aardvark/MS
aardwolf/M
aardwolves
Aaren/M
Aargau
aargh
Aarhus
Aarika/M
aarogramme

我不确定您所说的后缀是什么意思,但我假设它是示例文本中 / 或 ' 之后的部分。您可以使用来自 Bash.

的简单管道来执行此操作
cat something.mwl | perl -pe 's{[/\x27].*$}{}; ' > stripped_something.txt

-p 开关表示在管道中 运行 perl。无论您输入什么,都将一次放入 $_ 一行,进行处理,然后打印出来。请注意,我将 \x27 作为正则表达式中的撇号。在命令行中转义它是一个很大的痛苦。如果有任何其他字符开始后缀,您可以将它们放在字符 class.

您也可以在用这种方式打印出来之前在线上做任何其他工作。

有关 -p 开关的更多信息,请参阅 perlrun 文档。