6

Hunspellを使用して、自分が書いたエッセイを修正しようとしています。残念ながら、スペルミスのある単語の行番号を出力しない限り、私には役に立ちません。

-a そのため、現在、コマンドにパイプできるようにするために、オプションを使用していますhunspell。マニュアルページには、この-L オプションは「スペルミスのある行を印刷する」と書かれています。しかし、出力に違いは見られません。

これは私が今していることです:

$ cat myessay.txt | hunspell -d en_US,de_DE -a -L

出力例は次のようになります。

& JavaServer 3 412: Java Server, Java-Server, Javasee

「JavaServer」という単語は 78 行目にあり、man ページで説明されているように、その行には 412 文字のオフセットがあります。

足りないものはありますか?この問題の簡単な解決策はありますか? それとも、各行を Hunspell にパイプして、それがどの行番号にあったかを調べる必要がありますか?

前もって感謝します。

4

1 に答える 1

10

さて、実際に Hunspell のソースをダウンロードして、本題に取り掛かりました。快適に作業できる出力を提供する、文書化されていない-u オプションがあります。

$ hunspell -u -d en_US,de_DE myessay.txt

これは、ドイツ語とアメリカ語の辞書を使用して行番号を印刷するためのトリックです。または、オプションを使用し-U てテキストの抜粋を取得することもできます。その他の文書化されていないコマンド ライン オプションは-u2、 および-u3です。

ただし、注意してください。これらのスイッチは実験的なものであり、ソース コードによると、これらの関数は Unicode をサポートしていません。

ハンガリーのドキュメントから:

  • -u: ファイル内の典型的なエラーを置換提案と共に表示します。
  • -u2: sed で実行できる典型的なバグとその修正。
  • -U-u :オプションで受け取ったすべての提案を受け入れる場合、-U スイッチは自動的に Hunspell を置き換え、変更されたファイルを標準出力に送信します。パッチの例: hunspell -U original_file >patch_file. スイッチと同様に、エラー出力にもパッチが再度表示されます-u 。

出力例:

  • -u:Line 2: liveration -> liberation
  • -u2:2s/liveration/liberation/g; # liveration
  • -u3:(null):2: Locate: liveration | Try: liberation
于 2012-05-27T23:52:11.630 に答える