User Manual — re:Grep v1.0
大量のファイルを、ストレスなくgrepするためのツール
よく調べるフォルダの情報をあらかじめDB化し、ファイル検索とgrepを高速に。 grep結果に対してさらにgrepする「絞り込み」や、結果からの外部エディタ起動にも対応します。
01概要とコンセプト
re:Grep は、指定したフォルダ配下のファイル一覧とテキスト内容を SQLite の DB にキャッシュし、 そのDBに対して高速にファイル検索・grepを行うためのデスクトップツールです。 Windows標準のファイル検索よりも高速な文字列検索や絞り込みを行うために、Python + PySide6 + SQLite で作られています。
こんな人に向いています
- 決まった場所への調査目的のgrepを繰り返し行う人
- コマンドラインには不慣れだが、grep的な検索は使いたい人
- grep結果から大量のソースを目視でざっと眺めることが多い人
- Windows標準のファイル検索(反応の遅さ・インデックスの不透明さ・結果が消える等)にストレスを感じている人
基本的な仕組み
- 指定フォルダのファイル一覧(FileList)をDB化。拡張子の対象/除外、更新日、サイズ、パスなどで絞り込み可能
- FileList作成時にテキスト内容もDBへ取り込み(キャッシュ)可能
- grepはFileListに対して実行。キャッシュ内容を使うか、その都度元ファイルを読みに行くかを選択可能
- 既存のgrep結果に対して、さらに絞り込みgrepを繰り返し実行可能(親子関係を持つ結果タブとして管理)
- FileList・grep結果はいずれもListViewに表示され、右クリックメニューやEnter/ダブルクリックで外部エディタ起動やファイルの場所を開くといった操作が可能
- FileList・grep結果はCSVへエクスポート可能。DBファイル自体も任意の場所へ保存・任意の場所から読込が可能
02導入・アンインストール
インストール
任意のディレクトリに配布物を解凍するだけです。インストーラは不要です。
初回実行時、実行ファイルと同じ階層に以下の2ファイルが自動生成されます。
| ファイル | 役割 |
|---|---|
regrep.db | アプリが利用するSQLite DB(FileList・grep結果・画面設定を保持) |
preference.json | 直近使用したDBパス、アプリ全体設定、ブックマーク一覧 |
アンインストール
アプリケーションフォルダを削除するだけです。必要に応じて、任意の場所に保存したDBファイルも合わせて削除してください。
03基本的な流れ
-
対象フォルダを指定してFileListを作成する
調査したいフォルダを指定し、拡張子・更新日・サイズなどの条件をつけてFileListを作成します。テキスト内容も一緒にDBへ取り込んでおくと、以降のgrepが高速になります。
-
FileListに対してgrepする
検索文字列を入力し、内容grep・ファイルパスgrepのいずれか(または両方)を対象にgrepを実行します。結果は新しいタブに表示されます。
-
必要なら結果をさらに絞り込む
grep結果を対象に、別の検索語で再度grepすることができます(絞り込みgrep)。何段階でも繰り返せます。
-
結果からファイルを開く・CSVに出す
ListView上の行から外部エディタを起動したり、ファイルの場所を開いたり、結果一覧をCSVに出力したりできます。
04画面構成
画面は上から次の3つのブロックで構成されています。
▼ / ▶ で折りたたみ可能各ブロックを折りたたむと、タイトルの横に作成日時や件数などのステータスが要約表示されます。画面サイズ・折りたたみ状態・入力内容は自動的に保存され、次回起動時に復元されます。
05DB操作・ブックマーク
re:Grepの作業単位は「DBファイル1つ=ひとつの調査対象」です。上部の3つのボタンでDBを切り替えます。
新規保存(名前を付けて保存)読込preference.json)に追加します(最大20件、先頭が最新)。06FileList作成
対象フォルダ指定 ボタンでフォルダを選択します。1つ選択するごとに追加確認が表示されるため、複数フォルダをまとめて対象にすることもできます。
作成条件
; 区切りで複数拡張子を指定できます(例: java;jsp;js;sql)。.svn .git .hg .vscode node_modules など(設定画面で編集可)配下を対象から除きます。.docは簡易抽出)。FileList作成 を実行すると、既存のFileList・grep結果はすべて削除される旨の確認が表示されます。作成後は CSV出力(filelist.csv)や 削除 が行えます。
07grep実行
grep対象 プルダウンでは、「FileList」に加えて過去のgrep結果も選択できます(親子関係は階層化して表示されます)。まず何を対象にgrepするかをここで選んでください。
「内容grep」「ファイルパスもgrep対象とする」の両方をオフにすることはできません(検索対象が無くなるため)。実行前に確認ダイアログが表示されます。
08絞り込みgrep
grep結果は下部にタブとして追加され続けます。grep対象 プルダウンで既存のgrep結果を選んで再度grepすると、
その結果の子タブとして新しい絞り込み結果が作成されます。この親子関係は何段階でも繰り返せます。
- タブを右クリックすると、そのgrep結果の
CSV出力とこのGrep結果を削除が行えます(FileListタブ自体は削除できません)。 - grep結果を削除すると、その結果から派生した子・孫の結果もまとめて削除されます。
09結果一覧(ListView)の操作
FileListタブ・grep結果タブとも、行に対して次の操作ができます。
右クリックメニュー
| 項目 | 内容 |
|---|---|
| ファイルパスをコピー | 選択行のフルパスをクリップボードにコピー |
| ファイルをコピー | ファイル実体をクリップボードにコピー(貼り付けでコピー可能) |
| ファイルの場所を開く | エクスプローラーでファイルの場所を開く |
| OS既定のアプリで開く | 設定でこの項目の表示がオンの場合のみ表示。「起動防止拡張子」に該当するファイルには表示されません |
| (各エディタ名)で開く | 設定画面に登録したテキスト/バイナリエディタで、可能なら該当行・オフセットへジャンプして開く |
| この値でフィルタ/フィルタ解除 | クリックしたセルの値で一覧を絞り込み表示(列単位) |
ダブルクリック/Enterキー
それぞれの動作は設定画面(⚙)で以下から選べます。
- 何もしない
- ファイルの場所を開く
- デフォルトエディタで開く
- ファイルをコピー
xlsx docx xls doc)は、発見箇所へのジャンプには対応していません。「OS既定のアプリで開く」のみが表示されます。
10設定画面(⚙)
右上の ⚙ ボタンから開きます。ここでの内容はDBごとではなく、preference.json にアプリ全体設定として保存されます。
ブックマークリスト管理
表示名/DBパスの一覧を直接編集できます。「削除」はブックマークから外すだけで、DBファイル自体は削除されません。↑ ↓ で並び替え可能です。
新規DB作成時のデフォルト値
新規 ボタンでDBを作成した際に適用される、対象/除外拡張子・特殊フォルダ除外リストの初期値です。
ListViewコンテキストメニュー設定
「OSの既定アプリで開く」の表示可否、およびテキストエディタ/バイナリエディタの一覧(表示・デフォルト・表示アプリ名・アプリパス・起動オプション)を管理します。「デフォルト」に指定したエディタが、各行の「デフォルトエディタで開く」動作の対象になります。
マウス・キーボード操作
行ダブルクリック/Enterキー押下時の動作をそれぞれ設定します。
起動防止拡張子
常時有効な安全機能です。ここに指定した拡張子(初期値 exe;bat;cmd;ps1;vbs)のファイルは「OS既定のアプリで開く」が無効化され、誤って実行してしまうことを防ぎます。
11外部エディタ連携
起動オプションにプレースホルダを指定することで、エディタ起動と同時に発見箇所へジャンプできます (エディタ側に行・列・オフセット指定でのジャンプ機能があることが前提です)。
テキストエディタ用プレースホルダ
{file} = ファイルパス {line} = 行番号 {column} = 列番号
| エディタ | 起動オプション例 |
|---|---|
| サクラエディタ | -Y={line} |
| VS Code | -g {file}:{line} |
| notepad++ | -n{line} |
バイナリエディタ用プレースホルダ
{file} = ファイルパス {offset} = バイナリオフセット
| エディタ | 起動オプション例 |
|---|---|
| 010 Editor | -goto:{offset} |
12注意点・既知の制限
- ツールのコンセプト上、頻繁に内容が更新されるディレクトリでの利用には注意が必要です(DB作成時点の内容がキャッシュされるため)。
- 置換機能は搭載していません。あくまで検索・grep専用のツールです。
- 初回のFileList作成には、対象件数・場所(特にネットワークドライブ)によって時間がかかります。
- 「テキスト判定の場合内容インポート」を有効にすると、DBサイズが大きくなります。
- 正規表現を利用する場合、指定内容によっては検索に非常に時間がかかることがあります。
- 古いWordファイル(拡張子
.doc)は、内容によってgrepがヒットしない場合があります。
13環境
reGrep.exe)