设为首页 收藏本站
查看: 545|回复: 0

小猿圈Linux开发之解决拼写问题

[复制链接]
累计签到:3 天
连续签到:3 天
发表于 2019-6-20 18:27:40 | 显示全部楼层 |阅读模式
现在IT发展迅速,大多数朋友无论是什么行业或者岗位都在或多或少的学习一些IT方面的知识,而linux又是最受欢迎的一种。今天小猿圈linux老师为你分享一下Linux解决拼写问题,感兴趣的朋友一起看看吧。



首先Linux为数据分析和自动化提供了各种工具,它也帮助我们解决了一个一直都在纠结的问题——拼写!无论在写每周报告时努力拼出一个单词,还是在提交商业计划书之前想要借助计算机的“眼睛”来找出你的拼写错误。现在我们来看一下它是如何帮助你的。
look是其中一款工具。如果你知道一个单词的开头,你就可以用这个命令来获取以这些字母开头的单词列表。除非提供了替代词源,否则look将使用/usr/share/dict/words中的内容来为你标识单词。这个文件有数十万个单词,可以满足我们日常使用的大多数英语单词的需要,但是它可能不包含我们计算机领域中的一些人倾向于使用的更加生僻的单词,如zettabyte。
look命令的语法非常简单。输入lookword,它将遍历单词文件中的所有单词并找到匹配项。
$ look amelio
ameliorable
ameliorableness
ameliorant
ameliorate
ameliorated
ameliorates
ameliorating
amelioration
ameliorations
ameliorativ
ameliorative
amelioratively
ameliorator
amelioratory
如果你遇到系统中单词列表中未包含的单词,将无法获得任何输出。
$ look zetta
$
如果你没有看到你所希望出现的单词,也不要绝望。你可以在你的单词文件中添加单词,甚至引用一个完全不同的单词列表,在网上找一个或者干脆自己创建一个。你甚至不必将添加的单词放在按字母顺序排列的正确位置;只需将其添加到文件的末尾即可。但是,你必须以root用户身份执行此操作。例如(要注意>>!):
# echo “zettabyte” >> /usr/share/dict/words
当使用不同的单词列表时,例如这个例子中的“jargon”,你只需要添加文件的名称。如果不采用默认文件时,请使用完整路径。
$ look nybble /usr/share/dict/jargon
nybble
nybbles
look命令大小写不敏感,因此你不必关心要查找的单词是否应该大写。
$ look zet
ZETA
Zeta
zeta
zetacism
Zetana
zetas
Zetes
zetetic
Zethar
Zethus
Zetland
Zetta
当然,不是所有的单词列表都是一样的。一些Linux发行版在单词文件中提供了多得多的内容。你的文件中可能有十万或者更多倍的单词。
在我的一个Linux系统中:
$ wc -l /usr/share/dict/words
102402 /usr/share/dict/words
在另一个系统中:
$ wc -l /usr/share/dict/words
479828 /usr/share/dict/words
请记住,look命令只适用于通过单词开头查找,但如果你不想从单词的开头查找,还可以使用其他选项。
grep
我们深爱的grep命令像其他工具一样可以从一个单词文件中选出单词。如果你正在找以某些字母开头或结尾的单词,使用grep命令是自然而然的事情。它可以通过单词的开头、结尾或中间部分来匹配单词。系统中的单词文件可以像使用look命令时在grep命令中轻松使用。不过唯一的缺点是你需要指定文件,这一点与look不尽相同。
在单词的开头前加上^:
$ grep ^terra /usr/share/dict/words
terrace
terrace's
terraced
terraces
terracing
terrain
terrain's
terrains
terrapin
terrapin's
terrapins
terraria
terrarium
terrarium's
terrariums
在单词的结尾后加上$:
$ grep bytes$ /usr/share/dict/words
bytes
gigabytes
kilobytes
megabytes
terabytes
使用grep时,你需要考虑大小写,不过grep命令也提供了一些选项。
$ grep ^[Zz]et /usr/share/dict/words
Zeta
zeta
zetacism
Zetana
zetas
Zetes
zetetic
Zethar
Zethus
Zetland
Zetta
zettabyte
为单词文件添加软连接能使这种搜索方式更加便捷:
$ ln -s /usr/share/dict/words words
$ grep ^[Zz]et words
Zeta
zeta
zetacism
Zetana
zetas
Zetes
zetetic
Zethar
Zethus
Zetland
Zetta
zettabytye
aspell
aspell命令提供了一种不同的方式。它提供了一种方法来检查你提供给它的任何文件或文本的拼写。你可以通过管道将文本传递给它,然后它会告诉你哪些单词看起来有拼写错误。如果所有单词都拼写正确,则不会有任何输出。
$ echo Did I mispell that? | aspell list
mispell
$ echo I can hardly wait to try out aspell | aspell list
aspell
$ echo Did I misspell anything? | aspell list
$
list参数告诉aspell为标准输入单词提供拼写错误的单词列表。
你还可以使用aspell来定位和更正文本文件中的单词。如果它发现一个拼写错误的单词,它将为你提供一个相似(但拼写正确的)单词列表来替换这个单词,你也可以将该单词加入个人词库(~/.aspell.en.pws)并忽略拼写错误,或者完全中止进程(使文件保持处理前的状态)。
$ aspell -c mytext
一旦aspell发现一个单词出现了拼写错误,它将会为不正确的“mispell”提供一个选项列表:
1) mi spell                            6) misplay
2) mi-spell                            7) spell
3) misspell                            8) misapply
4) Ispell                              9) Aspell
5) misspells                            0) dispel
i) Ignore                              I) Ignore all
r) Replace                              R) Replace all
a) Add                                  l) Add Lower
b) Abort                                x) Exit
请注意,备选单词和拼写是数字编号的,而其他选项是由字母选项表示的。你可以选择备选拼写中的一项或者自己输入替换项。“Abort”选项将使文件保持不变,即使你已经为某些单词选择了替换。你选择添加的单词将被插入到本地单词文件中(例如~/.aspell.en.pws)。
其他单词列表
厌倦了英语?aspell命令可以在其他语言中使用,只要你添加了相关语言的单词列表。例如,在Debian系统中添加法语的词库,你可以这样做:
$ sudo apt install aspell-fr
这个新的词库文件会被安装为/usr/share/dict/French。为了使用它,你只需要简单地告诉aspell你想要使用替换的单词列表:
$ aspell --lang=fr -c mytext
这种情况下,当aspell读到单词“one”时,你可能会看到下面的情况:
1) once                                6) orné
2) onde                                7) ne
3) ondé                                8) né
4) onze                                9) on
5) orne                                0) c?ne
i) Ignore                              I) Ignore all
r) Replace                              R) Replace all
a) Add                                  l) Add Lower
b) Abort                                x) Exit
最后想要了解更多关于Linux开发方面内容的小伙伴,请关注小猿圈竭力为你提供更全面更有竞争力的视频,希望对你有所帮助。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-911758-1-1.html 上篇帖子: 小猿圈Java开发之list按照元素某个字段去重详解 下篇帖子: 小猿圈web前端之微信小程序实现点击效果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表