Aspell не возвращает слова с ошибками при использовании режима sgml с дополнительным словарем
Я абсолютно сбит с толку этим. У меня есть скрипт, который проверяет орфографию в Git. Вот команда, которая получает список слов с ошибками:
git diff --cached | grep -e "^+[^+]" | aspell list --mode sgml --lang en --extra-dicts=/home/test/dictionary.test --add-sgml-skip={ulink,literal,screen} | sort | uniq
Количество аргументов в --add-sgml-skip не имеет значения. Файл dictionary.test создается с помощью:
aspell --lang=en create master /home/test/dictionary.test < /home/test/dict.txt
Это все работает и все хорошо, но в одном документе это не работает, слова не найдены. Я понятия не имею, почему это происходит. Вот еще немного информации:
> git diff --cached | grep -e "^+[^+]" | wc -l
250
> git diff --cached | grep -e "^+[^+]" | aspell list --mode sgml --lang en --extra-dicts=/home/test/dictionary.test | sort | uniq | wc -l
39
> git diff --cached | grep -e "^+[^+]" | aspell list --mode sgml --lang en --extra-dicts=/home/test/dictionary.test --add-sgml-skip={ulink} | sort | uniq | wc -l
39
> git diff --cached | grep -e "^+[^+]" | aspell list --mode sgml --lang en --extra-dicts=/home/test/dictionary.test --add-sgml-skip={ulink,literal} | sort | uniq | wc -l
0
Когда я запускаю эту команду в других репозиториях, она работает без нареканий. Я пытался выяснить это в течение дня и сейчас в недоумении. Я должен знать, почему это происходит, иначе я не высплюсь еще раз:) Помощь была бы очень признательна.
1 ответ
Попробуйте Aspell следующей строкой, чтобы получить возможные ошибки (замените test.html на существующий файл).
cat test.html | aspell list f- sgml --lang en --extra-dicts=/home/test/dictionary.test --add-sgml-skip={nospell,literal,screen} | sort | uniq
Если это не дает ошибок, попробуйте.
git diff --cached | grep -e "^+[^+]" | cat test.html | aspell list f- sgml --lang en --extra-dicts=/home/test/dictionary.test --add-sgml-skip={nospell,literal,screen} | sort | uniq