一度にメモリに小さな部分をロードするだけで、数ギガバイトのテキストファイルを編集できるエディターはありますか? Vimで処理できるとは思えません=(
* nixを使用している場合(およびファイルの一部のみを変更する必要がある場合(まれに))、ファイルを分割し(split
コマンドを使用)、個別に編集する(awk
を使用して、 sed
、または同様のもの)を完了し、それらを連結します。
cat file2 file3 >> file1
Ctrl-Cはファイルのロードを停止します。ファイルが十分に小さい場合、すべてのコンテンツをロードし、ロード後の手順を強制終了したのは幸運だったかもしれません。このヒントを使用するときは、ファイル全体がロードされていることを確認してください。
Vimは大きなファイルをうまく処理できます。 3.4GBファイルを編集したり、行を削除したりしました。次の3つの点に注意してください。
:115355
と入力すると、115355行に直接移動します。これにより、これらの大きなファイルの場合ははるかに高速になります。 Vimは行のバッファーを読み込むたびに最初からスキャンを開始するようで、Ctrl-Fを押しながらファイルをスキャンすると、ファイルの終わり近くで本当に遅くなるようです。注-Ctrl-Cを押したためにVimインスタンスが読み取り専用になっている場合、Vimがファイル全体をバッファーにロードしなかった可能性があります。その場合は、保存してくださいファイル全体ではなく、バッファ内の内容のみを保存します。 G
ですばやくチェックして最後までスキップし、ファイル内のすべての行がそこにあることを確認します。
詰まらせているのはプラグインかもしれません。 (構文の強調表示、折り畳みなど)
プラグインなしでvimを実行できます。
vim -u "NONE" hugefile.log
それはミニマリストですが、少なくともあなたが慣れているviの動きを与えるでしょう。
syntax off
別の明らかなものです。インストールを整理し、必要なものを入手します。あなたはそれが何ができるか、そしてあなたが他の手段でタスクを達成する必要があるかどうかを知るでしょう。
Split + vimソリューションを使用して@Al pachioによって与えられた答えのわずかな改善により、ファイルチャンクをバッファとして効果的に使用して、globでファイルを読み込むことができます
$ split -l 5000 myBigFile
xaa
xab
xac
...
$ vim xa*
#edit the files
:nw #skip forward and write
:n! #skip forward and don't save
:Nw #skip back and write
:N! #skip back and don't save
これを確認することをお勧めします VIMプラグイン これは、大きなファイルをロードするときの速度を考慮して、特定のvim機能を無効にします。
私はそれをしようとしましたが、そのほとんどはSQLダンプに小さな変更を加える必要があるときに1 GB前後のファイルでした。私はWindowsを使用していますが、これは大きな苦痛です。とても難しいです。
明らかな質問は「なぜ必要なのか」です。私はこれを複数回試さなければならない経験からあなたに伝えることができます、あなたはおそらく本当に別の方法を見つけたいと思います。
それでどうやってやるの?いくつかの方法があります。時々、vimまたはnanoを取得してファイルを開き、それらを使用できます。それは本当につらい痛みですが、うまくいきます。
それがうまくいかない場合(あなたの場合のように)、いくつかのオプションしかありません。必要な変更(たとえば、検索と置換)を行うための小さなプログラムを作成できます。あなたはそれを行うことができるかもしれないコマンドラインプログラムを使用することができます(たぶんそれはsed/awk/grep/etcで達成できるでしょうか?)
それらが機能しない場合は、ファイルを常にチャンクに分割し( split のようなものが明らかな選択ですが、必要な部分を取得するためにhead/tailを使用できます)、次にその部分を編集できます(s)それを必要とし、後で再結合します。
しかし、私を信じて、別の方法を見つけてみてください。
16進エディタが巨大なファイルを処理することはかなり一般的だと思います。 Windowsでは、 HxD を使用します。これは、最大8 EB(80億ギガバイト)までのファイルを処理すると主張しています。
Win7 x64でvim 7.3.3を Charles CampbellのLargeFileプラグイン とともに使用して、マルチギガバイトのプレーンテキストファイルを処理しています。本当にうまくいきます。
あなたが正しく来ることを願っています。
なんとか、GBが1つでも2つでも、vimを窒息させることができませんでした。 UltraEdit(Windows)とBBEdit(Mac)はさらに大きなファイルにも適していると聞きましたが、個人的な経験はありません。
以前は、このツールで3ギガファイルを開いていました http://csved.sjfrancke.nl/
個人的には、 ltraEdit が好きです。ここに彼らの小さな 大きなファイルのスピル があります。
私は、FAR Commanderの組み込みのエディター/ビューアーを使用して、非常に大きなログファイルを作成しました。
TextPad を使用しましたが、大きなログファイルには上限がありません。
私がそのようなことのために使用できた唯一のものは、私のお気に入りのMac hexエディター、0XEDです。しかし、それは私が数十メガバイトの大きさであると考えたファイルでした。どこまで行くのか分かりません。ただし、ファイルの一部のみを一度にメモリにロードすると確信しています。
過去に、ファイルが非常に大きくなったときに、分割/編集/結合のアプローチをうまく使用しました。これを機能させるには、編集するテキストが元のファイルのどこにあるかを知っておく必要があります。