PR

Migrep2をインストールした結末:Windows上で過去の翻訳をgrep検索

役立ち情報
スポンサーリンク

Windows用のgrepツールを利用してみようと、いくつか検討をしてみました。

Windows Explorerでもよいのですが、時間がかかることと、結果が見づらいのですよね。

試したのはTresGrep、KWIC Finder4、VxEditor、秀丸、Migrep2です。(エディタも含まれています)

理由としては、翻訳時に、過去に同じような文・フレーズを訳したことがあったなぁ、とか、過去に翻訳したかは覚えていないけれど、もしあったら流用しよう、ということが多々あるためです。

翻訳作業を少しでも楽に効率的に行えないか、と日々考えています。便利に使えるツールを探したり、自動化できるところは自動化したり、と。

スポンサーリンク

検討したツールを列挙

以下、5つのgrepツールを試してみました。

1. TresGrep

  • TresGrep サポートページはこちら
  • フリーウェア
  • HNXgrepの刷新改善バージョン
  • 機能がとても充実している (一方で、初めてのユーザーには多すぎるかも)
  • 起動後にフリーズ、使用中にも何度もフリーズして使えなかったため断念

2. KWIC Finder 4

  • KWIC Finder 4 - ファイルGREP検索・KWIC索引・テキストビューアのページはこちら
  • シェアウェア
  • xdoc2txtが内蔵
  • シェアウェアなので、まだ試していない

3. VxEditor

  • VxEditor 2種類の正規表現検索やキーマクロなどを搭載した多機能テキストエディタのページはこちら
  • フリーウェア
  • 動作OS: Windows Vista/XP/Me/2000/NT/98/95だった (Windows10が含まれず) ため、断念

4. 秀丸

  • 秀丸エディタの紹介ページはこちら
  • シェアウェア
  • grep検索結果がエディタ上に表示されるので、使いにくさから断念 (ただしエディタとしては優秀)

5. Migrep2

  • Migrep2の紹介ページはこちら
  • フリーウェア
  • 機能が多すぎず、またUIもシンプルで分かりやすい

Migrep2を試すことに決定

Migrep2をテスト
Migrep2をテスト

大きな期待を込めて、Migrep2をインストールしました。

Migrep2のインストール手順

1. Migrep2単体のインストール

1. MiGrep2 Ver1.7(2021/7/16) のページ (下の方) > 最新版をダウンロードします。

使用しているWindowsが32bitなら32bit版、64bitなら64bit版をダウンロードします。

※確認するには、Windowsマーク⇒[設定]⇒[システム]⇒[詳細情報]⇒[デバイスの仕様]⇒[システムの種類]を見ます。

2. ダウンロードしたファイル (migsetupXX.zip) を解凍します。

3. MiGSetup64.exeを実行します。

4. インストール先を指定し、[次へ] をクリックします。

Migrep2をインストール - インストール先の指定
Migrep2をインストール – インストール先の指定

4. しばらくすると、インストールが完了するので、[OK] をクリックします。

Migrep2をインストール - インストール完了
Migrep2をインストール – インストール完了

5. セットアップウィザードの画面でも、[完了] をクリックします。

Migrep2をインストール - インストール完了
Migrep2をインストール – インストール完了

Migrep2自体は、ここまででインストール完了です。

2. xd2txlib.dllファイルをインストールフォルダへコピー

通常、grepはテキストファイルのみが対象です。
WordやExcelなどのオフィスドキュメントの中も、同じように検索できるようにするために、xdoc2txtライブラリを使用する設定が必要です。

6. xdoc2txtのダウンロードページを開き、[ダウンロード] のセクションから、最新バージョンをダウンロードします。

手順1. でダウンロードしたのが32bitなら32bit、64bitなら64bitをダウンロードします。

7. xdoc2txtをインストールする前に、同じページにある、「Visual Studio 2015、2017、および 2019 用 Microsoft Visual C++ 再頒布可能パッケージ」をダウンロードし、インストールします。

8. 上記 6. でダウンロードしたxd2tx220.zip (または、xd2tx220_x64.zip) を解凍し、dllフォルダ内にある、xd2txlib.dllをインストールフォルダ (手順4.で指定したフォルダ) にコピーします。

3. Migrep2の設定

9. Migrep2を起動し、[オプション]⇒[設定パネル] をクリックし、[xdoc2txtを使用する]にチェックを入れた上で、手順8.でコピーした.dllフォルダの場所を指定します。

Migrep2 - 設定画面
Migrep2 - 設定画面

10. [OK] ボタンをクリックして、インストールと設定すべて完了です。

Migrep2の使い方

1. 検索対象のフォルダ、検索対象の語句を指定し、(必要に応じて) サブフォルダも検索するかを選択し、Enterキーを押すと、検索が実行されます。

Migrep2の実行

2. 画面下側に、ヒットしたファイル数、検索時間が表示されます。

強制終了がランダムに発生

上記のように、正常に結果を返してくれるときと、動きが止まったかと思うとアプリケーション画面が音もなく終了するときがあります。

エラーの内容

Windowsボタン右クリック⇒[イベントビューアー]⇒[Windowsログ]⇒[Application] を見ると、アプリケーションエラーとして、下記が出ていました。

障害が発生しているアプリケーション名: MiGrep2.exe、バージョン: 1.7.0.0、タイム スタンプ: 0x60f0da5c
障害が発生しているモジュール名: ntdll.dll、バージョン: 10.0.19041.1466、タイム スタンプ: 0xe2f8ca76
例外コード: 0xc0000374

例外コード0xc0000374は、ヒープ破壊のようですが、開発元に問い合わせるべきだそうで。

もう一つは、Windows Error Reportingとして、

障害バケット 1339674349948644293、種類 4
イベント名: APPCRASH
応答: 使用不可

クラッシュしたのがログに残っていました。

xdoc2txtが原因か

指定したフォルダのサブフォルダやそこに含まれるファイルの上限数が関係しているわけではなさそうでした。

試しに、上記の「Migrep2のインストール手順」> 「3. Migrep2の設定」で設定した、xdoc2txtのチェックボックスをオフにした状態で、同じフォルダの検索を走らせたところ、クラッシュは発生しませんでした

xdoc2txtは、メモリとCPUを大量に消費しているようなので、それが関係していそうです。

メモリクラッシュの可能性

xdoc2txtの開発者、hishidaさんのブログ記事には、クラッシュの可能性について記載がありました。

xdoc2txtはVer2.0以降 Dll版も提供しているが、DllImportでdllをロードした場合(例1)、アプリケーション終了までDllのメモリは解放されない。通常は問題ないが、連続して大量のファイルのテキスト抽出を行うと、入力ファイルによってメモリーリークが生じたり、クラッシュしたりする場合があることがわかった。

hishidaの開発blog

実際に、Migrep2でどのようにxdoc2txtが呼び出されているか、Migrep2の開発者に問い合わせる必要がありますが、Migrep2というよりは、xdoc2txtの呼び出し方か、xdoc2txtの内部的なものに関係がありそうです。

まとめ

何の解決にもなっていませんが、今後、新たに分かったことがあれば、追記しようと思います。

PCを新しく買って試す方が早いかもしれませんが。。。

タイトルとURLをコピーしました