大きな(巨大な、巨大な、大きな)テキストファイルを開くためのテキストエディタ

このようなテキストファイルは、エディタの限界に挑戦することができます。

大きなXMLファイルに目を通したいのですが、エディタがバグっていると無理です。

何か提案はありますか?

質問へのコメント (17)
ソリューション

VS Code (Windows, macOS, Linux) - フリーでオープンソース、素敵なGUIを備えています。3.6 GB の JSON ファイルを編集、1 分でロード。ファイルを読み込むのに十分なRAMが必要です。

無料の読み取り専用ビューア。

  • glogg (Windows, macOS, Linux) - 複数GBのファイルを扱えることが確認されている。正規表現検索が主な機能。タブがあり,ディスクから直接ファイルを読み込むことができ,ファイルのウォッチ/フォローや,行のマークが可能.
  • LogExpert**]3 (Windows) - tailのGUI代替ツール。
  • 大きなテキストファイルビューア**]4 (Windows) - 最小限の機能で、実行サイズが非常に小さくなっています。分割表示、テキストテーマのカスタマイズ、正規表現検索、ファイルフォローをサポート。
  • リスター**]5 (Windows) - さらに小さく、ミニマリスト。500KBの実行ファイルですが、検索(正規表現)、印刷、HEXエディタモード、設定をサポートしています。

フリーのエディタです。

  • Vim と Emacs (Windows, macOS, Linux) - 古典的な Unix エディタ。学習曲線は急ですが、残酷なほど効率的です。さらに高速化するための設定もあります。
  • Large File Editor**]6 (Windows) - TB+ ファイルを開いて編集することができ、Unicode をサポートし、メモリをほとんど使用せず、XML 固有の機能を持ち、バイナリモードも備えています。
  • HxD**]7 (Windows) - テキストエディタではなく、Hexエディタです。
  • GigaEdit**]8 (Windows) - 検索、文字統計、フォントのカスタマイズをサポート。しかし、バグが多く、大きなファイルでは、文字を挿入することができず、上書きをすることしかできません。

内蔵プログラム(インストール不要)。

  • 9] (macOS, Linux) - 伝統的な Unix コマンドラインのページャーツールです。実質的にあらゆるサイズのテキストファイルを見ることができます。Windowsにもインストール可能。
  • メモ帳**]10 (Windows) - 大きなファイル、特にワードラップをオフにした場合に適しています。
  • MORE (Windows) - これはWindowsの MORE のことで、Unixの more のことではありません。ファイルを一度に1画面ずつ見ることができるコンソールプログラムです。

ウェブビューア。

  • htmlpen.com - TB+ ファイルを開き、シンタックスハイライトを行うことができます。非常に大きなファイルを除き、編集が可能です。検索、正規表現、エクスポートをサポートしています。
  • readfileonline.com - もう一つのHTML5大容量ファイルビューアです。検索をサポートしています。

有料のエディタ。

  • 2010 Editor**]14 (Windows, macOS, Linux) - 巨大ファイル(50GB程度)を開くことができます。
  • SlickEdit**]15 (Windows、macOS、Linux) - 巨大なファイルを開くことができます。
  • UltraEdit (Windows, macOS, Linux) - 6GB以上のファイルを開きますが、これを実用化するためには設定を変更する必要があります。メニュー » 詳細 » 設定 » ファイル処理 » 一時ファイル » 一時ファイル無しでファイルを開く...
  • EmEditor (Windows) - 非常に大きなテキストファイルをうまく扱えます(公式には248GBまでですが、ある報告によると900GBまで)。

最後に、その大きなファイルを普段使っているエディタで開いてみたことはありますか?いくつかのエディタは、実際にそれなりに大きなファイルを扱うことができます。特に、Notepad++(Windows)やSublime Text(Windows, macOS, Linux)は2GB台のファイルをサポートしています。

解説 (61)

Tips and tricks

less

なぜ、(大きな)ファイルを見るだけなのにeditor*を使っているのですか?

nix や Cygwin では、less を使えばよいのです。(有名なことわざがあります - "less is more, more or less" - なぜなら "less" は以前の Unix コマンド "more" に取って代わり、スクロールバックできるという付加価値をつけたからです)。less での検索や移動は Vim と非常によく似ているが、スワップファイルがなく、 RAM もほとんど消費されない。

GNU less の Win32 への移植版もある。上記の答えの "less" のセクションを参照すること。

Perl

Perl は素早いスクリプトを書くのに適しており、 .. (範囲フリップフロップ) 演算子は、あなたがかき分けなければならないゴミを制限するための良い選択メカニズムになります。

例えば

$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less

これは、100万行目から200万行目までのすべてを抽出し、 lessで出力を手動でふるいにかけることができるようにするものです。

もう一つの例。

$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less

これは、"正規表現1"が何かを見つけると印刷を開始し、"正規表現2"が興味深いブロックの終わりを見つけると印刷を停止するものです。複数のブロックが見つかるかもしれません。出力をふるいにかける...

ログパーサ

これも使える便利なツールです。Wikipediaの記事]3を引用します。

logparserは、柔軟なコマンドラインユーティリティで、当初はMicrosoftの社員であるGabriele Giuseppiniによって、IISログのテストを自動化するために書かれたものであった。これは、Windowsオペレーティングシステムでの使用を目的としており、IIS 6.0リソースキットツールに含まれていました。logparserのデフォルトの動作は、データ処理パイプラインのように、コマンドラインからSQL式を受け取り、そのSQL式にマッチする行を出力します。

Logparserは、ログファイル、XMLファイル、CSVファイルなどのテキストベースのデータや、イベントログ、レジストリ、ファイルシステム、Active DirectoryなどのWindows OS上の主要なデータソースへのユニバーサルクエリーアクセスを提供する強力で汎用性の高いツールであるとマイクロソフトは説明しています。入力されたクエリの結果は、テキストベースの出力にカスタムフォーマットされるほか、SQL、SYSLOG、チャートなど、より専門的なターゲットに永続化することも可能です。

使用例

C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line > 1000 and line < 2000"
C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line like '%pattern%'"

サイズの相対性

100MB はそれほど大きくはない。3GBはちょっと大きいですね。私は以前、アメリカの第一種郵便物の約2%を作成する印刷・郵送施設で働いていました。私が技術リーダーを務めていたシステムの1つが、郵便物の約15%以上を占めていました。あちこちで大きなファイルをデバッグしていました。

And more...

ここにもっとツールや情報を自由に追加してください。この回答は、理由があってコミュニティ wiki になっています!私たちは皆、大量のデータを扱うのにもっとアドバイスが必要です...

解説 (12)