# Large File Viewer

> 巨大なログやテキストファイルをメモリに全部読み込まずにブラウザで開く：すぐスクロール、行ジャンプ、検索、grep のようなフィルタ、JSONL 表示。アップロードなし。

- URL: https://bytescope.dev/ja/large-file-viewer/
- Locale: ja · Also: [en](https://bytescope.dev/en/large-file-viewer.md) · [zh-Hant](https://bytescope.dev/zh-Hant/large-file-viewer.md)
- Runs: ファイルはディスクから少しずつ読み込まれます。インデックス作成、検索、書き出しはすべてこのタブ内で完結し、アップロードもアカウントも不要、サーバーにコピーも残りません。
- Requires: Any modern browser for scrolling, search and JSONL. Saving the filtered lines straight to a file you pick needs Chrome, Edge or Opera on desktop; elsewhere the export is built in memory and downloaded.
- Updated: 2026-09-08

## What it does

サーバーのログが 3 GB あって、02:14 ごろに何かが起きた。メモ帳は固まり、VS Code は警告を出した末に止まり、`grep` のためだけにファイルを scp で運ぶのも気が進まない。このページはそのための大容量テキストファイルビューアです。`.log`、`.txt`、`.jsonl`、`.ndjson`、`.csv`、`.json` — ブラウザが渡せるテキストファイルならどんなサイズでも開き、ファイル全体をメモリに読み込むことはありません。先頭行からすぐにスクロールでき、行番号・パーセント・末尾へジャンプし、リクエスト ID を検索してヒットごとに前後の行を確認し、`WARN` の行だけを表示して新しいファイルとして保存できます。

### これほど大きなファイルをどう開くのか

ファイルは必要なときに必要な部分だけ、スライス単位で読みます。バックグラウンドのワーカーが一度だけファイルを走査して、1,024 行ごとに 1 件の疎な行インデックスを作るので、ファイル全体を RAM に置く必要がありません。インデックス構築中はスクロールバーがバイト位置で動き、完成後は行番号で動いて、N 行目へのジャンプが正確になります。文字コードは先頭 64 KB から自動判定し（UTF-8、UTF-16 LE / BE、Big5、GBK、Shift_JIS、EUC-KR、Windows-1252）、判定が外れていれば手動で切り替えられます。極端に長い 1 行 — たとえば 1 行に詰め込まれた 500 MB の minify 済み JSON — は 1 MB まで表示して「長すぎるため切り詰め」と印を付け、その後の行番号はずれません。ページが落ちることもありません。

### 検索・フィルタ・ログレベル

検索はプレーンテキスト（大文字小文字の区別は任意）か JavaScript の正規表現です。ファイルをチャンクごとに走査し、見つかった結果から順に流れてきます。クリックすればその位置へ前後の行つきでジャンプします。Stop ボタンは暴走した正規表現でも即座に検索を止め、行インデックスは失われません。フィルタ表示では一致する行だけ、または `grep -v` のように一致しない行だけを表示し、最大 5,000,000 件まで列挙して、それ以上あるときは知らせます。ログレベルは自動で色分けします。`ERROR`、`WARN`、`INFO`、`DEBUG`、`TRACE`、`FATAL` の単語、syslog の `<N>` 優先度、JSON ログの `level` / `severity` フィールド（pino や bunyan の数値レベルを含む）、logfmt の `level=`、Android の logcat に対応し、「WARN 以上」はワンクリックです。先頭 20 行がすべて JSON のオブジェクトか配列なら JSONL モードに切り替わり、どの行でもツリーに展開できます（解析するのはその 1 行だけ）。絞り込んだ行は新しいファイルとして書き出せます。Chrome と Edge では選んだファイルへ直接ストリーミングし、それ以外のブラウザではメモリ上で組み立てて、512 MB を超えると警告を出します。

### 正直な制限

今のバージョンには全文インデックスがないので、検索のたびにファイルを先頭から末尾まで読み直し、速度はディスク次第です。これは読み取り専用のビューアです。バイトを書き換えたいなら Hex Editor で開いてください。`.gz` はまだ非対応なので、先に解凍してください。正規表現は grep や PCRE ではなく JavaScript の構文で、強欲な量指定子（possessive quantifier）などは使えません。ファイル全体が 1 つのオブジェクトや配列になっている巨大な JSON ドキュメントはテキストとして表示・検索できますが、ツリーにはなりません。

### プライバシー

何もアップロードされません。ファイルはお使いの端末上でスライス単位で読まれ、インデックスも検索結果もフィルタもすべてタブの中にあります。サーバーは関わらず、片付けはタブを閉じるだけです。

## Limits

Does not upload the file, edit or save over it, or open .gz files yet; it reads and filters the text as it is, and a whole-file full-text index is not built.

## FAQ

### 5 GB のログをメモ帳や VS Code で開けないのはなぜ？

一般的なエディタはファイル全体をメモリに読み込み、編集用のバッファを作ります。数 MB なら問題ありませんが、数 GB では手に負えません。このページはそれをしません。見ている部分のスライスだけを読み、バックグラウンドのワーカーで行の位置をインデックス化し、チャンクごとに検索するので、ファイルサイズが影響するのは全文検索にかかる時間だけで、開けるかどうかには関係しません。

### ファイルはアップロードされますか？

いいえ。ブラウザがディスクからスライス単位で読み、インデックス作成・検索・フィルタはすべてタブの中で動きます。サーバーはなく、送り先もありません。絞り込んだ結果のエクスポートも、あなたのディスクへ直接書き込まれます。

### 行数が wc -l より 1 多いのはなぜ？

行は `\n`、`\r\n`、または単独の `\r` で終わります。`wc -l` は改行文字の数しか数えないので、最終行に改行がないファイルは 1 行少なく数えられます。このページはその最終行も数えます。実際に読めて検索もできる本物の行だからです。ファイルが改行で終わっていれば両者は一致し、そうでなければこのページは `wc -l` + 1 を表示します。

### 末尾や特定の行へ直接ジャンプできますか？

できます。N 行目へ、ファイルの何パーセントの位置へ、あるいは末尾（tail）へジャンプできます。バックグラウンドの行インデックスが完成するまではスクロールがバイト位置で動き、完成後は行番号が正確になります。インデックスは 1,024 行ごとに 1 件の疎なものなので、数億行のファイルでも小さく収まります。

### grep のようにエラー行だけ表示するには？

フィルタ表示を使います。プレーン文字列か JavaScript 正規表現を入力し、一致する行か一致しない行（`grep -v` 相当）を選びます。ログレベルについては、各行から検出したレベルを使うワンクリックの「WARN 以上」があり、プレーンな単語、syslog 優先度、JSON の `level` / `severity` フィールド、logfmt、logcat をすべて認識します。一致行は最大 5,000,000 件まで列挙され、結果は新しいファイルとして保存できます。

### JSONL や NDJSON のログも読めますか？

読めます。先頭 20 行がすべて JSON のオブジェクトか配列なら、ページは JSONL ビューアとして動く JSONL モードに切り替わります。各レコードはスクロールと検索のために 1 行のままで、どの行でもツリーに展開できます。解析されるのはその 1 行だけなので、数百万レコードのファイルでも追加コストはありません。レベルの色分けは `level` または `severity` フィールドを読み、pino や bunyan の数値レベルにも対応します。

### .gz のログを開いたり、ファイルを編集したりできますか？

今のバージョンではできません。圧縮された `.gz` ファイルは先に解凍が必要で、このページは読み取り専用のビューアです。バイトを書き換えるには Hex Editor を使ってください。列でソート・フィルタしたり SQL で問い合わせたい CSV なら CSV Explorer のほうが適していますし、Parquet なら Parquet Viewer をご覧ください。

### 1 行が巨大なファイルはどうなりますか？

1 行は 1 MB まで表示され「長すぎるため切り詰め」と印が付きます。残りは表示上スキップされますが、その後の行番号は正しいままなので、1 行に詰まった 500 MB の minify 済み JSON でもページは落ちません。ファイル全体が 1 つの巨大な JSON ドキュメントの場合、テキストとして検索はできますがツリーにはなりません。ツリー表示は各行が独立したドキュメントである JSONL 専用です。

## Related tools

- [Hex Editor](https://bytescope.dev/ja/hex-editor.md) — どんなファイルでも生のバイト列を開いて、1 バイトずつ編集。
- [CSV Explorer](https://bytescope.dev/ja/csv-explorer.md) — 表計算ソフトで開けない CSV を、フィルタ・並べ替え・SQL で。
- [Parquet Viewer](https://bytescope.dev/ja/parquet-viewer.md) — 列指向の Parquet ファイルも同じ感覚でブラウズ・クエリ。
