ログ管理

技術解説

-i 付きの正規表現が ripgrep に2.7〜3.1倍負ける — Wide Field⑨:.NET の正規表現がどこまで同じか、書き換え先で結果が変わる話

【追記 2026-10-16】いまの速さ — -E -i の2回目は、1/2.7〜1/3.1 の負けから ripgrep より速いに変わりました 本文の秒数は v1.7.3.6(2026年9月29日)のものです。同じ M…
技術解説

ripgrep の –json に項目数で負ける JSON Lines — Wide Field⑪:キーは3つだけ、スレッド数は –tune で測って決める(1本6.33→8本16.41 GB/s)

jq に渡せません。 検索結果を cut -d: でファイル名と行番号に割ろうとして、C:/logs/app.log のコロンで割れました。Windows のパスです。ならば最初から JSON で出せばいい——と思ったと…
技術解説

rg に gzip をつながずに gz で書き出す — Wide Field⑩:50GB で117.20秒→11.89秒、ただし3GBでは ripgrep と同等

形が、戻りませんでした。 bz2 で保管していたログを探して、結果をまた bz2 で置きたい。入口は7つの圧縮形式を読めるのに、出口はテキストだけでした。 読めるのに書けない、というのは何が足りないのでしょうか。 計測は…
技術解説

ripgrep では pbf の中を探せない — Wide Field⑥:osmium で XML にして渡すと148秒、uvp に直接渡すと29.3秒(2回目からは6.8秒)

2分半、待ちました。 osmium cat で OpenStreetMap の pbf を XML に展開し、rg に流す。これで1回の検索に148秒です。pbf は地図データの圧縮形式なので、rg にそのまま渡しても中…
技術解説

ripgrep は zip の中を探さない — Wide Field⑤:unzip で展開してから探すと18.4秒、zip をそのまま渡すと3.3秒(2回目は0.6秒)

0件、と返ってきます。 rg に zip を渡しても、中は見てくれません。終了コードは1。ログを zip で固めて置いてあると、まず展開しないと探せないわけです。 その展開は、いくらの買い物でしょうか。 対象は uvzi…
技術解説

ripgrep の -g にある除外指定が、まだありません — Wide Field⑧:ファイル指定を引用符ひとつに決め、直した5か所で36項目が一致

引用符を忘れると、怒られます。 uvf .log ERROR と打つと、エラーになって「引用符で囲んでください」と言われる。ripgrep なら、そのまま探してくれるところです。わざわざ使いにくくしているわけです。 なぜ…
技術解説

束ねる1回目は ripgrep に1.58倍負ける — Wide Field④:2回目からは9.77秒、ファイルが1本消えても作り直さない

1本、消えました。 まとめて探すために作った索引の、元のファイルです。app.log.9.gz が保存期間を過ぎて消えた——そのとき、索引はどうあるべきでしょうか。 以前のこちらは、作り直していました。それが正しくないと…
技術解説

ripgrep と同じ除外規則にそろえた — Wide Field⑦:3つのOSで43項目が一致、ただし .rgignore は読みません

件数が合いません。 同じフォルダーを rg --files と自作の CLI に渡したのに、対象になるファイルの一覧が違う。犯人は .gitignore でした——正確には、こちらがそれを読んでいなかったことです。 「r…
技術解説

平文と gz の12本を1コマンドで — Wide Field①:ripgrep に1.62倍負けてから2.42倍、ただし平文だけでは取り返せない

【追記 2026-10-04】v1.7.3.6.8 で、2回目(hot)の読み方が速くなりました この記事の「平文5本の2回目は uvf が遅い側(1/1.38)」は v1.7.3.6 の値です。v1.7.3.6.8 で…
技術解説

圧縮ログの検索を ugrep・ripgrep・zgrep と比べた — 1回目は同等、2回目は形式によらず 0.11〜0.12秒

【追記 2026-10-04】v1.7.3.6.9 では、平文5本も同等(uvf がわずかに速い)になりました この記事の「平文だけを複数まとめて探すと ripgrep の方が少し速い(1/1.17)」は、書いたときの版…