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
Другие вопросы по тегам