29

我有一些文件要进行拼写检查。通常我会在 中打开这些vim,运行:set spell并进行更改。但是,打开文件并手动检查自上次检查以来我是否拼错了任何单词真的很麻烦。

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

我找不到任何 POSIX 拼写检查实用程序。一些基于 Red-Hat 的 Linux 发行版据称有spell或类似的,但我更喜欢跨平台(ish)方法。我知道vim 可以拼写检查 - 有没有任何方法可以在不手动完成所有拼写检查的情况下进行拼写检查?如果我可以编写一个解决方案,那就太好了。

我正在跑步OS X,为了它的价值。

4

3 回答 3

28

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

brew install aspell --lang=en,fi,jp

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

for f in *.txt; do aspell check $f; done

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

cat *.txt | aspell list | sort -u

学过的单词默认存储在.aspell.en.pws里面。您还可以~/Library/Spelling/en在添加personal_ws-1.1 en为第一行之后排除单词。

aspell list --personal=$HOME/Library/Spelling/en
于 2012-10-09T22:09:25.063 回答
10

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

for f in *.txt ; do echo $f ; aspell list < $f | sort | uniq -c ; done
于 2013-04-16T11:11:33.263 回答
1

您可以使用find命令执行此操作。这样做将递归地工作并编辑子目录中的文件。

find . -type f -name "*.txt" -exec aspell check {} \;

解释:

  • find: 寻找...
  • .: 在这个目录
  • -type f: 文件(不是目录)
  • -name "*.txt": 以 .txt 结尾
  • -exec aspell check {} \;: 并在他们每个人上运行 aspell。

带引号的通配符是 bash 构造。它可能不符合 POSIX。

于 2021-08-17T16:41:13.463 回答