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

Posted

技术标签:

【中文标题】如何从bash中的ispell .mwl文件中提取所有前缀词【英文标题】:how to extract all prefix words from an ispell .mwl file in bash 【发布时间】:2022-01-12 01:11:39 【问题描述】:

我有一个 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

【问题讨论】:

请看How to create a Minimal, Complete, and Verifiable example。 mwl 文件中的数据样本会很有用。 【参考方案1】:

我不确定您所说的后缀是什么意思,但我认为它是示例文本中 / 或 ' 后面的部分。您可以使用 Bash 中的简单管道来完成此操作。

cat something.mwl | perl -pe 's[/\x27].*$; ' > stripped_something.txt

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

您也可以在以这种方式打印出来之前对线路进行任何其他工作。

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

【讨论】:

以上是关于如何从bash中的ispell .mwl文件中提取所有前缀词的主要内容,如果未能解决你的问题,请参考以下文章

ispell命令

如何从 Bash 中的路径字符串中删除文件后缀和路径部分?

使用'basename -s'从bash中的路径中提取文件名

如何使用bash从参数中的字符串列表中提取字符串

Linux Bash - 修改从标准输出中提取的文本

如何从 json 文件中提取子域?