1

私はこれに完全に困惑しています。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日理解しようとしていて、途方に暮れています。なぜこれが起こるのかを知る必要があります。そうしないと、もう一晩眠ることができません:)助けていただければ幸いです。

4

1 に答える 1

0

次の行で 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
于 2012-10-04T05:09:11.960 に答える