Shell 拼写检查与词典操作,大多数Linux发行版都含有一份词典文件。然而,我发现几乎没人在意过这个文件,拼写错误仍是满天飞。还有一个叫作aspell
的命令行实用工具,其作用是进行拼写检查。让我们通过几个脚本来看看如何使用词典文件和拼写检查工具。
实战演练
目录/usr/share/dict/中包含了一些词典文件。所谓“词典文件”就是包含了单词列表的文本文件。我们可以利用它来检查某个单词是否在词典之中。
为了检查给定的单词是否为词典单词,可以使用下面的脚本:
这个脚本的用法如下:
工作原理
在grep
中,^
标记着单词的开始,$
标记着单词的结束1,-q
选项 禁止grep
产生任何输出。
1
^
匹配的是行首位置,$
匹配的是行尾位置。因为词典文件中每行只有一个单词,故使用正则表达式^1
匹配行中出现的完整单词。在该例中,从效果上来看,^
和$
恰好分别对应了单词的起止位置,但要注意这两者并非单词分界符。
作为另一种选择,我们也可以用拼写检查命令aspell
来核查某个单词是否在词典中:
当给定的输入不是一个词典单词时,aspell list
命令会生成输出,否则不产生任何输出。-z
用于确认$output
是否为空。
look
命令可以显示出以特定字符串起始的行。你可以用它在日志文件中查找以特定日期为首的记录,或是在词典中查找以特定字符串开头的单词。look
默认会搜索/usr/share/dict/words,你也可以给出文件供其搜索:
或者使用
例如:
在/var/log/syslog中找出以特定日期起始的日志记录: