如何对多个文件进行拼写检查并在shell脚本中显示任何不正确的单词?

sim*_*ont 19 linux macos vim bash

我有几个文件我想拼写检查.通常我会打开这些vim,运行:set spell并进行更改.然而,打开文件并手动检查自上次检查后我是否拼错了任何单词都是非常麻烦的.

有没有办法我可以对很多文件进行拼写检查,并显示找到的任何拼写错误的单词以及文件名,以便我可以更改它们?我不想打开每个文件,检查它是否"干净",然后打开下一个并重复.

我找不到任何POSIX拼写检查工具.一些基于Red Hat的Linux发行版据称有spell或类似,但我更喜欢跨平台(ish)方法.我知道vim 可以拼写检查 - 有没有任何方式拼写检查而不是手动完成所有操作?如果我可以编写解决方案的shell脚本,那就太棒了.

我正在奔跑OS X,因为它的价值.

Lri*_*Lri 21

您可以在OS X上使用Homebrew安装aspell.brew info aspell列出支持的语言.

brew install aspell --lang=en,fi,jp
Run Code Online (Sandbox Code Playgroud)

aspell check 在交互式拼写检查器中打开一个文件:

for f in *.txt; do aspell check $f; done
Run Code Online (Sandbox Code Playgroud)

aspell list 打印所有无法识别的单词:

cat *.txt | aspell list | sort -u
Run Code Online (Sandbox Code Playgroud)

.aspell.en.pws默认情况下会存储学习的单词.您还可以~/Library/Spelling/en在添加personal_ws-1.1 en为第一行后排除单词.

aspell list --personal=$HOME/Library/Spelling/en
Run Code Online (Sandbox Code Playgroud)


Tom*_*Tom 5

使用aspell,将打印每个文件名,然后打印拼写错误的单词的排序列表以及它们出现的次数:

for f in *.txt ; do echo $f ; aspell list < $f | sort | uniq -c ; done
Run Code Online (Sandbox Code Playgroud)