UwView シリーズ — 探す UwView・比べる UwDiff
巨大なファイルを開いて探すのは UwView、2つのファイル・フォルダを比べるのは UwDiff。どちらも Windows・macOS・Linux で動きます。→ UwDiff の概要
UwView の入手方法と基本的な使い方をまとめます。UwView は、巨大なテキストを CLI で探して、GUI で読むための CLI/GUI ツールです。UwView(無料版)は GUI(画面)での閲覧・検索と、ターミナルから呼べる CLI(uvf)を備えます(書き換えはできません)。有料版 UwView Pro は同じ操作に、索引の保存(2回目以降は瞬時)・複数ファイルを束ねた索引・絞り込みと集計・編集(Edit Upgrade)・CLI の uvp が加わります。
このページでは、CLI(uvf)は ripgrep と、GUI は klogg と比べながら説明します。
現行版は v1.9.0「Full Spectrum」(UwView・UwView Pro とも)です。v1.9.0 から、無料版でも Word・Excel・PDF の中の文字を探せます。ダークテーマ・フォント・キーの割り当て(vi・less 風のひな形つき)の設定、結果一覧へのブックマーク、ファイル指定の波かっこ {a,b} も入りました。Pro は Shift-JIS・EUC-JP・UTF-16 のファイルも UTF-8 の索引にして、UTF-8 と同じ速さで探します。v1.8 から、画面の「コマンドライン」で uvf・uvp と同じ書き方で検索できます。複数のファイルをまとめて探し、平文と7種類の圧縮ファイルを混ぜても1回で済み、その結果はそのまま GUI で読めます。
このページは要点だけです。詳しい説明は次の資料にあります。
| 知りたいこと | 資料 |
|---|---|
uvf の書き方・オプション・正規表現・ripgrep との対応表 |
uvf コマンド操作マニュアル |
| GUI(画面)の操作(検索・結果一覧・ファイル一覧とタブ・ハイライタ・キー操作) | UwView 操作ガイド(PDF) |
| 現行版 v1.9.0 の内容 | リリースノート |
UwView Pro の GUI(多段検索・集計・.uwvz・編集) |
UwView Pro 操作ガイド |
CLI の uvp(Pro) |
uvp コマンド操作マニュアル |
入手・ダウンロード
無料版は Homebrew(Mac)・Scoop(Windows)で入れるのが簡単です。CLI の uvf もそのまま使えます。
brew install --cask amru195704/uwview/uwview # Mac(更新は brew upgrade --cask uwview)
scoop bucket add uwview https://github.com/amru195704/scoop-uwview # Windows(初回だけ)
scoop install uwview # Windows(更新は scoop update uwview)
Linux の場合と、手で入れる場合は、GitHub の Releases、または ダウンロードページ から、お使いの OS・アーキテクチャに合ったファイルを選んでください(.NET のインストールは不要です)。Homebrew と Scoop も Releases から取得して SHA256 を照合します。チェックサムは Releases の SHA256SUMS-1.9.0.txt にあります。
ファイル(例:UwView-1.9.0-mac-arm64.dmg) |
対象 |
|---|---|
UwView-<版>-mac-arm64.dmg |
macOS(Apple Silicon) |
UwView-<版>-mac-x64.dmg |
macOS(Intel) |
UwView-<版>-win-arm64.zip |
Windows(ARM64) |
UwView-<版>-win-x64.zip |
Windows(x64) |
UwView-<版>-linux-aarch64.tar.gz |
Linux(ARM64) |
UwView-<版>-linux-x86_64.tar.gz |
Linux(x86_64) |
UwView Pro 本体(UwViewPro-…)は ダウンロードページ から直接ダウンロードします。ダウンロードしただけでは無料版と同じ機能で動き、ライセンスキーを入れると Pro の機能が有効になります(後述)。
インストール不要ですぐ試したい場合は、ブラウザで動く WASMデモ をご利用ください(Chromium 系ブラウザ推奨)。
インストール・起動
- macOS: dmg を開いて
UwView.app(Pro はUwView Pro.app)をアプリケーションへ入れて起動します。Developer ID 署名・Apple 公証済みのため、警告なしに起動できます。 - Windows: zip を展開し、同梱の
UwView.Desktop.exe(Pro はUwView.Pro.App.exe)を実行します(GUI)。CLI は同じフォルダーのuvf.exe(Pro はuvp.exe)です。SmartScreen の警告が出たら「詳細情報」→「実行」で起動できます。 - Linux: tar.gz を展開し、同梱の
UwView.Desktop(Pro はUwView.Pro.App)を起動します(動かなければchmod +xで実行権限を付けてから)。
起動すると、窓の題名に UwView(uvf)-Full Spectrum(v1.9.0)(Pro は UwView Pro(uvp)-Full Spectrum(v1.9.0))と出ます。版数はここで確かめられます。
GUI(画面)の使い方
GUI は、ファイル全体をメモリに載せず、画面に見えている行だけを描画します。開いた瞬間から末尾まで動けます。比べる相手は klogg です(この節の最後)。
画面の見かた
| 場所 | 内容 |
|---|---|
| メニュー | ファイル:開く… / 閉じる(今のタブ) / すべて閉じる。ヘルプ:使い方・最新情報・お問い合わせ(Web)、GitHub、コマンドライン設定…、バージョン情報(Mac はアプリ名のメニューの「UwView について」) |
| ツールバー | ボタンはアイコンです。名前はマウスを乗せると出ます(ほかの窓のボタンも同じです。はい/いいえ・開く/閉じる・保存・中止などは文字のままです) |
| タブ | 1タブ=1ファイル。ファイル名・索引作成の %・×。多いときは1行のまま横にスクロールします(ホイールで送れます) |
| ステータス | ファイルのパス/「行モード」か「ページモード」/位置/文字コード。右に索引作成の進み具合と「キャンセル」、右端に直前の処理時間 |
| ミニマップ | ファイル全体の縮図。橙=検索のヒット、青=ブックマーク、灰色の帯=今見ている位置。クリック・ドラッグでその位置へ移ります |
| スタート画面 | ファイルを開いていないときの画面。「ファイルを開く…」、最近使ったファイル(最大15件)、お気に入り |
ファイルを開く
- 開き方: メニュー「ファイル → 開く…」かツールバーの開くボタン(複数選べます)、窓へのドラッグ&ドロップ、スタート画面でダブルクリック、OS の「このアプリケーションで開く」、CLI の
uvf -open(後述)。 - 前回の続き: 起動したときに「前回のファイル(N 件)を復元しますか?」と聞きます。「復元する」で前回の位置まで戻ります。
- 開いた瞬間から読めます: 開いた直後はページモードで、全体のスクロール・末尾への移動・
50%のような割合でのジャンプができます(行番号はまだ出ません)。行の索引ができると行モードになり、行番号・行でのジャンプ・行の選択が使えます。「キャンセル」で索引作成を止めても、ページモードのまま読めます。 - 索引ができる前に検索すると、検索と索引作成を1回の読み込みで同時に行います。
- タブ: 複数のファイルはタブで切り替わります。各タブが独立に索引を持ちます。
- 1行の表示は先頭 8,192 文字までです(それ以降は「…(省略)」)。
圧縮ファイルを開くとき
gz・bz2・xz・lzma・zstd のファイルを開くと、開き方を聞きます。
| 選択肢 | 動き |
|---|---|
| テキストに展開して開く | 同じフォルダーに展開してから開きます(gunzip と同じ結果) |
.uwvz に変換して開く(Pro) |
UwView Pro の機能です(無料版では選べません) |
| やめる | 開きません |
- 展開済みのファイルがあれば「それを開く/展開し直す」を聞きます。空き容量が足りなそうなら(圧縮の約4倍が目安)「続ける/やめる」を聞きます。
- zip は GUI では開けません(展開してから開いてください)。tar・二重圧縮なども理由を示して断ります(ファイルが壊れているとは限らないので、消さないでください)。
- 展開せずに探すだけなら、CLI の
uvfがそのまま検索できます(後述)。
移動する
| 操作 | 動き |
|---|---|
| ↑ ↓ / ホイール | 1行ずつ/3行ずつ |
| PageUp / PageDown | 1画面ずつ |
| Ctrl(Mac は Cmd)+Home / End | 先頭/末尾 |
| ← → / Shift+ホイール / 横スワイプ | 横にスクロール。Home で左端へ |
| ミニマップをクリック・ドラッグ | その割合の位置へ |
| ジャンプ欄に入れて移動ボタン | 50% → 半分の位置/12345 → 12345 行目(行モード)。ページモードで数字だけのときはバイト位置 |
- ジャンプ欄は Enter でも移動ボタンでも実行できます(Ctrl(Cmd)+L でジャンプ欄へ)。
- 移動した行は画面の中央に来て、水色で強調されます。
検索
- 検索欄に語を入れて Enter(または検索ボタン)。進み具合の窓が出ます(割合・件数・「中止」)。
- ヒットがあれば、結果一覧が自動で開きます。
-
ヒットした語は黄色で強調され、ミニマップに橙の線が出ます。
-
正規表現:検索語を正規表現として扱います。外すと速い文字列検索です(既定は外れています)。正規表現は .NET の書き方です。
- 大小無視:英字の大文字・小文字を区別しません。
- ◀ 前へ / 次へ ▶ で前後のヒットへ移ります。件数は「3/8,739 件」のように出ます。
- 検索欄には最近の50件が候補として出ます。よく使う検索は ★(定義済み) で保存し、一覧から選ぶとすぐ検索します。
- 探すのは今のタブの1ファイルだけです。複数のファイルは CLI(
uvf)で探します(後述)。 - 件数の上限はありません。
結果一覧
ヒットした行だけを別の窓に並べます。
- ダブルクリック/Enter で、本体のその行へ移ります。
- 前後 ± N 行:ヒットした行の前後も出します。無料版は ±1 までです(Pro は ±64 まで)。前後の行は淡色で、区切りに「⋯」が入ります。
- 保存…:表示している内容をファイル(
名前-filter.txt、UTF-8)に書きます。「行番号を含める」は既定でオンです。 - 選択はクリック、Ctrl(Cmd)+クリックで追加、Shift+クリックで範囲。Ctrl(Cmd)+A で全部、Ctrl(Cmd)+C でコピー。右クリックで「コピー」「ファイルに保存…」。
複数ファイルの結果・ファイル一覧とタブ
CLI(uvf)で複数のファイルを探し、その結果を GUI で読めます。
uvf -open '*.log' ERROR
- ファイル番号 1 のファイルがメインのタブに出て、結果の窓が開きます(検索語が無ければファイル一覧が開きます)。GUI は探し直しません。
- 結果の窓の行番号欄は
ファイル番号:行番号(例3:128)です。行を選ぶと、窓の下に実際のパスが出ます。 - ダブルクリック(または Enter) で、そのファイルのその行へ移ります。メインに出ているファイルならそのまま移り、追加のタブで開いていればそのタブに切り替えます。どこにも開いていなければ、メインの中身をそのファイルに差し替えます。圧縮ファイルは確認を出さずに隣に展開して開きます。
- ファイル一覧(箇条書きのアイコン)で、番号と実ファイルの対応、各ファイルのヒットの件数と大きさが見られます。
- 一覧の 「タブで開く」 をオンにすると、ファイルを追加のタブ(タブ名は
3:ファイル名)で開けます。タブは最大8個(メイン1+追加7)です。すでに開いているファイルは、そのタブに切り替えるだけです。 - メインのタブは灰色で、閉じられません。タブ名は27文字を超えると
...で省き、マウスを重ねると全体の名前が出ます。
無料版の制限(UwView Pro との違い)
| 項目 | UwView(無料) | UwView Pro |
|---|---|---|
| 結果から元の行へ | ファイルを開き直してから移る(大きいファイルは少し待つ) | 束ねた索引の中をすぐ移る |
| GUI の検索欄 | メインの1ファイルだけを探す(全体を探し直すのは CLI から) | 束ねた全体を探す |
| GUI に渡せる件数 | 最大100万件(各行は先頭1,000文字) | — |
| 前後 ± N | 出ない | ±64 まで |
色分けハイライタ
検索とは別に、決めた語や式を常に色分けして表示します(ERROR は赤、WARN は黄、など)。ツールバーのハイライタのボタンで管理画面を開きます。
- 正規表現・大小無視・行全体/ヒットした部分だけの着色に対応し、色覚に配慮した32色のパレットを備えます。上の規則ほど優先です。色は 8〜12 色までにするのがおすすめです。
- 同梱のプリセット7種:汎用ログレベル、syslog / Linux、Web access (HTTP)、JSON ログ、GeoJSON、KML、GNSS NMEA。
- 名前を付けて保存し、
.uwvhlファイルに書き出し/読み込みができます。セットはタブごとに選べます。検索の黄色はハイライタの色より優先されます。 - クイック着色(行モードのとき):本文の語をダブルクリックで選び(もう一度で記号まで広げ、3回目で解除)、右クリックで出る小さな窓の色見本(10色)を選ぶと、その語が着色されます。
ブックマーク・末尾追従・お気に入り
| 機能 | 使い方 |
|---|---|
| ブックマーク | 画面の先頭の行に付ける/外す。行番号欄の左端とミニマップに青い印が出て、◀▶([ ])で前後のブックマークへ移ります。ファイルごとに覚えて、同じファイルを開くと戻ります(追記だけなら戻し、中身が変わっていたら戻しません)。ファイルメニュー「ブックマークを書き出す…」で 名前-bookmarks.txt に書き出せます |
| 末尾追従 | オンにすると末尾へ移り、1秒ごとに追記を見て、増えたら末尾へ送ります(tail -f と同じ)。追記だけに対応します(ファイルの切り詰め・ローテーションには追従しません) |
| お気に入り | ハートのアイコンで今のファイルを登録/解除。スタート画面に出ます |
選択・コピー・文字コード
- 選択(行モードのとき):左ドラッグで行の範囲を選びます。Ctrl(Cmd)+C でコピー、右クリックで「コピー」「ファイルに保存…」。10万行を超えるコピーは、自動でファイル保存に切り替わります。
- 文字コード(ツールバー):自動判定・UTF-8・UTF-8 (BOM)・Shift-JIS・EUC-JP・UTF-16LE・UTF-16BE。切り替えても索引は作り直しません。タブごとに覚えます。
- 言語(ツールバー):日本語/English。最初は OS の言語に従います。
キー操作
| 操作 | 動き |
|---|---|
| ↑ ↓ / PageUp PageDown | 1行/1画面 |
| Ctrl(Cmd)+Home / End | 先頭/末尾 |
| ← → / Home | 横に1文字/左端へ |
| 左ドラッグ / Ctrl(Cmd)+C / Esc | 行の範囲を選ぶ/コピー/選択の解除 |
| ダブルクリック / 右クリック | 語を選ぶ/着色の窓、または選択のメニュー |
| 結果一覧・ファイル一覧でダブルクリック / Enter | その行へ移る/そのファイルを開く |
| Ctrl(Cmd)+F / F3 / Shift+F3 | 検索欄へ/次のヒット/前のヒット(Mac は Cmd+G / Cmd+Shift+G も) |
| Ctrl(Cmd)+L | ジャンプ欄へ(ジャンプ欄で Enter を押すと移る) |
Ctrl(Cmd)+B / [ ・ ] |
ブックマークを付ける・外す/前・次のブックマークへ |
| Ctrl(Cmd)+Shift+F / F5 / Esc | 末尾追従のオン・オフ/読み直す/検索欄・ジャンプ欄から本文へ |
- 検索欄・ジャンプ欄に文字を打っている間は、
[]は文字として入ります。キーの割り当ては変えられません。 - 無料版に設定画面はありません。言語・ハイライタのセット・検索履歴・定義済みの検索・前回のファイルと位置・最近使ったファイル・お気に入り・「タブで開く」の状態は自動で覚えます。
GUI — klogg との比較
同じ機械・同じファイル・同じ語で、ヒット件数は一致しています(条件は数字の条件)。
| 3GB | 10GB | 50GB | |
|---|---|---|---|
| 開く:klogg | 3.65秒 | 10.98秒 | 52.55秒 |
| 開く:UwView(無料・GUI) | 2.99秒 | 10.13秒 | 50.44秒 |
| 検索:klogg | 0.56秒 | 11.75秒 | 55.59秒 |
| 検索:UwView(無料・GUI) | 0.32秒 | 10.15秒 | 53.50秒 |
- 開くのも探すのも、klogg と同等です(3GB の検索だけ UwView が 1.75倍)。
- 差がつくのは、探して読むまでを通したときです。klogg は開くのに1回、探すのにもう1回ファイルを読みますが、CLI の
uvf … -openは1回で済みます。klogg(開く+検索)4.21秒・22.73秒・108.1秒に対し、uvf … -openは 3.40秒・10.42秒・50.76秒(3GB は同等、10GB で 2.18倍、50GB で 2.13倍)。 - klogg は索引ができるまで末尾までスクロールできません(258GB で 4分18秒)。UwView の GUI は開いた瞬間から末尾まで動けます。
- 2回目に開くとき、klogg は毎回索引を作り直します。UwView Pro は保存した索引で 0.01〜0.07秒で開きます。
詳しくは 概要ページ・klogg と正直に比べ直した話 をご覧ください。
CLI — uvf(無料版)/ uvp(Pro)
ターミナルで使う CLI です。無料版は uvf、Pro は uvp です。どちらも GUI と同じエンジンを使い、CLI で探して、ヒットしたら -open で GUI に渡すことができます。比べる相手は ripgrep です(CLI — ripgrep との比較)。
PATH の設定
アプリのメニュー ヘルプ → 「コマンドライン設定…」 を選ぶと、名前だけで打てるように登録されます。登録済みなら「登録し直す/解除する」を選べます。
| OS | 登録先 |
|---|---|
| macOS | /usr/local/bin に uvf(Pro は uvp)のリンクを作ります。管理者のパスワードを聞かれることがあります |
| Windows | ユーザーの環境変数 PATH にアプリのフォルダーを追加します(管理者権限は不要) |
| Linux | /usr/local/bin(権限が無ければ ~/.local/bin) |
- dmg から直接起動しているときは、先にアプリケーションフォルダーへ入れるよう案内します。
- Mac と Linux の
uvfは、ネイティブの1本の実行ファイルです(Mac では起動 0.01秒)。Windows では、長いパス(260文字を超えるもの)も扱えます。
uvf --version # 版数
uvf --help # 使い方
uvf --help files # ファイルの指定のくわしい説明
uvf --help regex # 正規表現(.NET の書き方)のくわしい説明。ripgrep の書き方からの書き換えも案内します
uvf — 無料版の CLI(受け付ける形は2つ)
uvf ファイル 検索語 [オプション] # 検索して結果を出す
uvf -open [ファイル] [検索語] # GUI を起動。ファイルがあれば開き、検索語があれば検索まで
検索語は、既定では文字列そのままで探します(大文字小文字を区別)。オプションの位置は自由ですが、-open だけは先頭か末尾に書きます。
| オプション | 意味 |
|---|---|
-i / -E / -v |
大小無視/正規表現(.NET)/当てはまらない行 |
--json |
1行に1つの JSON で出す(JSON Lines) |
-H / -h |
ファイル名を必ず付ける/付けない(-h だけを書くと使い方を表示) |
--files |
検索せず、指定が何に広がるかだけを出す(除外した本数も出す) |
--no-ignore |
.ignore・.gitignore による除外をしない |
-open |
結果を GUI で表示する(複数ファイルでも使える。--json とは一緒に使えません) |
--tune [ファイル] [--apply] |
この機械に合うスレッド数を実測する。--apply で設定に保存 |
出力の形:1本のファイルは 行番号<TAB>本文、複数のファイルは ファイル名:行番号<TAB>本文(ファイルは指定した順)。1行は省略せず全部出します。--json では {"n":行番号,"line":"本文"}(複数のときは "file" も付く)です。
終了コード:grep・ripgrep と同じです。0=見つかった/1=見つからない/2=エラー(ファイルが無い・正規表現の誤り・指定の誤りなど)。
if uvf app.log 'FATAL' > /dev/null; then
uvf -open app.log 'FATAL' # ヒットしたときだけ、人が見る GUI を出す
fi
複数のファイルをまとめて探す
uvf '*.log' ERROR # 今のフォルダーの .log をまとめて
uvf '**/*.log' ERROR # サブフォルダーも含めて
uvf 'app.log,app.log.*.gz' ERROR # 平文と .gz を混ぜて、1回で
uvf '**/*.log' ERROR --files # 探さずに、対象になるファイルだけを出す
uvf -open '**/*.log' ERROR # 探して、結果を GUI へ
- 指定は必ず引用符で囲みます。 シェルではなく
uvfが広げるので、Windows でも同じ書き方で動きます。引用符を付け忘れると「複数のファイルが直接渡されました」というエラーになります。 - 複数のファイルは空白かカンマで区切ります。カンマが1つでもあればカンマだけで区切るので、空白を含むパス(
Program Filesなど)はカンマで区切ってください。 *は任意の文字の並び(フォルダーの区切りはまたがない)、?は任意の1文字、**はフォルダーを何段でも。[ ]{ }はワイルドカードとして使えません。- ワイルドカードで広げた分は、
.ignore・.gitignoreに当たるファイルを外します(主な規則は ripgrep と同じ)。名前を書いて指定したファイルは外しません。外したくないときは--no-ignoreを付けます。--filesの最後に、除外した本数が出ます。 - 隠しファイル・隠しフォルダーは、どの OS でも対象外です。フォルダー名だけ(
'logs')は使えないので'logs/**'と書きます。
圧縮ファイル(7形式)
gz・bz2・xz・lzma・zst・lz4・br は、展開しながらそのまま検索します。外部のコマンドは使いません。xz のうち複数ブロックで作られたもの(xz 5.6 以降の既定)は、複数のスレッドで展開します。平文と混ぜて1回で探せます。
uvf app.log.zst ERROR
uvf 'app.log,app.log.*.gz' ERROR -open
.zip・.tar.gz・OSM の .pbf・.uwvz(Pro の索引)は uvf では扱えません。展開してから探してください(zip と pbf は UwView Pro が扱います)。
正規表現(-E)
-E は .NET の正規表現です。よく使う書き方は ripgrep と同じですが、違いがあります。先読み・後方参照はそのまま使えます。[[:alpha:]] のような POSIX 文字クラスと \p{Han} は使えません(エラーで代わりの書き方を案内します)。\d は全角数字にも当たります。1行ずつ照合します。書き換えの例は uvf --help regex と uvf コマンド操作マニュアル の7章にあります。
CLI — ripgrep との比較
速さは ripgrep と同等です。 下の比べ方では、どれも開きが 1.5倍未満でした(7つの検索の合計は 1.3倍未満)。索引は作らず、ファイルを1回だけ読みます。先に負けを書きます。ripgrep のほうが短い時間だった場面は、平文だけを複数まとめて探すとき(平文5本で uvf の時間が ripgrep の 1.17倍)と、3GB・10GB を続けて2回目(hot)に素の検索をしたとき(0.32秒 対 0.42秒、0.99秒 対 1.33秒。メモリに載る大きさなので、どちらもメモリから返ります)です。
1本の大きいファイル(cold=キャッシュを捨てた直後、hot=続けて2回目)
| 検索7種の cold+hot 合計(秒) | ripgrep | uvf |
倍率(rg ÷ uvf) |
|---|---|---|---|
| 3GB | 31.25 | 30.03 | 1.04 |
| 10GB | 89.59 | 88.01 | 1.02 |
| 50GB | 828.97 | 749.14 | 1.11 |
検索7種は、素・-i・-E・-E(行頭)・-E -i・-v・-E -v です。50GB の素の検索は、ripgrep 56.06秒/55.50秒 に対して uvf 51.49秒/50.52秒(cold/hot)でした。
圧縮ファイル・複数ファイル(grep 系=標準の grep・ugrep・ripgrep との比較。hot=各2回の速い方。圧縮は 979MB のテキストを各形式で圧縮したもの)
| 秒 | 標準の grep | ugrep | ripgrep | uvf |
倍率(rg ÷ uvf) |
|---|---|---|---|---|---|
| gz | 0.90(zgrep) | 0.45 | 0.43 | 0.33 | 1.30 |
| bz2 | 8.03(bzgrep) | 7.62 | 7.89 | 7.43 | 1.06 |
| xz | 4.01(xzgrep) | 3.64 | 4.21 | 3.37 | 1.25 |
| lzma | 3.21(xzgrep) | 2.83 | 3.40 | 2.57 | 1.32 |
| zst | 0.63(zstdgrep) | 0.65 | 0.54 | 0.50 | 1.08 |
| lz4 | 0.65(lz4 -dc|grep) | 0.33 | 0.31 | 0.28 | 1.11 |
| br | 1.33(brotli -dc|grep) | 0.91 | 0.87 | 0.74 | 1.18 |
| gz 5本(展開後 約7.4GB) | 9.43(zgrep) | 2.56 | 1.34 | 1.04 | 1.29 |
| gz 7本+平文5本=12本(展開後 約60GB) | 89.35(zgrep) | 25.38 | 24.62 | 17.60 | 1.40 |
- 1回だけ探すなら、圧縮はどの形式も
uvfが最短でした。ただし ugrep・ripgrep との差は 1.03〜1.36倍で、同等です。標準の grep 系には gz で 2.73倍・lz4 で 2.32倍・br で 1.80倍です。 - 12本をキャッシュを捨てた直後(cold)に測ると、
uvf21.35秒・ugrep 26.85秒で、これも同等でした。 - ripgrep は圧縮に
-zを付けています。版と環境は数字の条件にあります。 - 出力は ripgrep と突き合わせて一致を確かめています(不一致 0)。Windows・Linux を含む表は 実測まとめ にあります。
- 同じファイルに何度も問うなら、索引を残す Pro の
uvpが向いています(次の節)。
uvf に無いもの
前後の行(-C)・多段の絞り込み・集計・順序検索・-head/-tail・-out・置換・.uwvz の読み書き・zip と pbf。これらは Pro の uvp の機能です。標準入力の検索・複数行にまたがる検索は、どちらにもありません(ripgrep との対応は uvf コマンド操作マニュアル の11章)。
uvp — Pro の CLI(概略)
uvp は1回目に索引(.uwvz。元の本文を圧縮して行の位置を加えたもの)を作り、2問目からは索引を使うので速くなります。ファイルの指定・正規表現・圧縮の読み込みは uvf と同じです。
uvp <ファイル> <検索語> [段…] [オプション] 調べる(主記法)
uvp '*.log' ERROR 複数のファイルを1本の .uwvz に束ねて探す(2回目から作り直さない)
uvp convert <ファイル> [-out x.uwvz] 索引(.uwvz)を作るだけ
uvp <ファイル.uwvz> -extract [形式] [-out …] 元の形に戻す(ライセンス不要)
uvp <ファイル> <検索語> -replace <置換後> 置換した全文を出す(Edit ライセンス・元ファイルは変更しない)
uvp -open [<ファイル>] … GUI を起動する
uvf(無料) |
uvp(Pro) |
|
|---|---|---|
検索・複数ファイル・.ignore/.gitignore・--files |
○ | ○ |
| 圧縮ファイル(7形式) | 展開しながら探す | 展開して索引にする |
索引(.uwvz)で2回目以降を速く |
— | ○ |
| zip の中のテキスト・OSM の pbf | — | ○ |
| 多段の絞り込み・前後 ±N の共起・集計・並べ替え・順序(流れ) | — | ○ |
| 先頭/末尾 N 件・ファイルへの書き出し(圧縮も) | — | ○ |
| 置換した全文を出す | — | ○(Edit ライセンス) |
段は語の後ろに書き、書いた順に実行されます(パイプと同じ考え方)。例:uvp app.log ERROR -C 5 timeout(ERROR の前後5行の中から timeout を探す)、uvp app.log ERROR -uniq 'code=(\d+)'(ERROR の行を code ごとに数える)。終了コードは uvf と同じ 0/1/2 です(2 は上限で打ち切ったときも)。
参考までに、12本(gz 7本+平文5本・展開後 約60GB)を続けて2回探すと、uvp の1回目は束ねた .uwvz を作るので uvf の 2.34倍(41.23秒 対 17.60秒)かかります。2回目は 9.52秒で uvf の 1.85倍速く(ripgrep は 24.62秒)、2回目以降の3回で取り返します。1本の 50GB では、1回目は ripgrep と同等(58.42秒 対 56.06秒)で、2回目は 6.47秒(ripgrep 55.50秒の 8.6倍)です(hot。条件は数字の条件)。
全コマンド・全オプションと rg/sed との対比は uvp コマンド操作マニュアル、GUI での多段検索・集計・編集は UwView Pro 操作ガイド をご覧ください。
UwView Pro — ライセンスの有効化
UwView Pro を購入すると、Polar から UVP-… で始まるライセンスキーが届きます。アプリの 設定 → ライセンス でキーを貼り付けて有効化すると、Pro の機能(2回目以降の瞬時オープン・高速検索・.uwvz・複数ファイルを束ねた索引・zip と OSM の pbf・結果一覧の前後 ±64 行・矩形選択・CLI の uvp。Edit Upgrade なら編集と -replace)が使えます。Windows・macOS・Linux 対応、1ライセンスで全OS。買い切りと月額の2通りがあります(Edit Upgrade も同じ。価格は製品ページ)。14日間の無料試用キーは ダウンロードページ にあります。使い方は UwView Pro 操作ガイド をご覧ください。
既知の制限
- 改行は LF と CRLF が対象です。CR だけの改行(旧 Mac 形式)には完全には対応していません。
- UTF-16 は行の区切りが厳密ではありません。主な対象は UTF-8 / Shift-JIS / EUC-JP です。
- Shift-JIS の文字列検索で、まれに文字の境目をまたいだヒットが出ます(正規表現なら出ません)。
- 1行の表示は 8,192 文字までです。
- 閲覧中にほかのプログラムがファイルを切り詰めると、落ちることがあります。
- GUI では zip を開けません。GUI の検索は1ファイルずつです(複数のファイルは CLI の
uvfから)。 - フォントの大きさ・テーマは変えられません。
.gzの中に1行が 64MiB を超える行があり、それが検索に一致すると、「最後まで読めませんでした」という趣旨の案内が出ることがあります。ファイルは壊れていません。展開してから開いてください。- ブラウザ版は目安 3GB・1億行までです。パスを指定して開く・ドラッグ&ドロップ・末尾追従・お気に入り・前回の復元・圧縮ファイル・複数ファイルの結果とファイル一覧は使えません。設定も保存されません。
数字の条件
- CLI の1本の大きいファイル(検索7種の合計・素の検索・
uvpの 50GB)は、uvf/uvp1.7.3.1(2026年9月28日。検索の処理は 1.7.3.6 と同じ)・ripgrep 15.2.0 の実測です。cold はキャッシュを捨てた直後、hot は続けて2回目。uvpの cold は.uwvzの作成込みです。 - 圧縮 7 形式・複数ファイルは hot(各2回の速い方)で、
uvf1.7.3.4(検索の処理は 1.7.3.6 と同じ)/uvp1.7.3.5(検索の処理は 1.7.3.6 と同じ)・ugrep 7.8.5・ripgrep 15.2.0 の実測です(2026年9月28日)。12本の cold は別の手計測、平文5本はuvf1.7.2.7 の cold+hot 合計です。 - GUI と klogg の比較(1本のファイル・klogg 24.11.0・語は「東京」・cold)は v1.6.6 “First Light”(2026年9月20日)の実測です。UwView Pro の2回目に開く 0.01〜0.07秒も同じ時期の値です。
uvfの起動 0.01秒は Mac での値です。- どれも Mac(Apple M4・10コア・メモリ32GB)・外付け USB SSD、データは OpenStreetMap 日本の XML で測りました。秒数は環境によって変わります。環境をまたいで比べないでください。 条件と全データは ベンチマーク一覧 にあります。
困ったときは
GUI の操作は UwView 操作ガイド を、uvf でうまく当たらないときは uvf コマンド操作マニュアル の「よくあるつまずき」をご覧ください。不具合や質問は お問い合わせ・サポート へ。機能追加の要望・ロードマップは GitHub Issues で公開しています。
開発者より: アプリ・Kindle本・公開プロジェクトの一覧は GitHub: amru195704 にまとめています。