Viまたはgeditで巨大なテキストファイルを表示する方法


24

wordlist.txtで11 GB を生成しましたcrunch-3.6。Viまたはgeditでファイルを開こうとすると、ファイルサイズが原因で問題が発生します。このファイルを表示するにはどうすればよいですか?


8
重複しているとは思わない。密接に関連し、いくつかの回答が役立つ場合がありますが、これは編集ではなく表示に関するものです。受け入れられた回答は、表示には役立ちません。
pLumo

1
同意する。ファイルの表示とファイルの編集は同じものではなく、ファイルが非常に大きい場合にのみ区別が重要になります。
エリアケイガン

回答:


43

テキストは使用しないでくださいエディタのための閲覧テキストを。

より良いツールがあります:


less(スペースでスクロール、終了、ホーム、PageUp、PageDown、「/ something」で検索、qで終了)でファイルを表示します。

lessマニュアルから:

Lessは、開始する前に入力ファイル全体を読み取る必要がないため、大きな入力ファイルでは、vi(1)などのテキストエディターよりも速く起動します。

使用法:

less wordlist.txt

の使用を検討してくださいless -n

-nまたは--line-numbers:

行番号を抑制します。デフォルト(行番号を使用)では、特に非常に大きな入力ファイルの場合、一部のケースでlessの実行が遅くなる場合があります。-nオプションで行番号を抑制すると、この問題を回避できます。

(-nオプション@pipeを提案してくれてありがとう)


grep興味のある行のみを取得するために使用します。

# Show all Lines beginning with A:
grep "^A:"  wordlist.txt

# Show all Lines ending with x and use less for better viewing
grep "x$"  wordlist.txt | less

headまたはtailを使用して、最初または最後のn行を取得します

head wordlist.txt
tail -n 200 wordlist.txt

テキストの編集については、この質問を参照しください。


4
moreとは異なり、ファイル全体をメモリにロードすることに注意してくださいless。大きい場合は、使用しないことをお勧めします。最良のオプションは間違いなく使用することgrepです。
ネフォ

1
私のコメントは実際には間違っているかもしれません。私は両方のチェックを開始moreし、lessソースコードを、両方とも使用するかように見えるopenか、fopen私の知る限りでは、ファイルがロードされている方法については何も変わらない、
Nepho

2
同意した。moreは非常に時代遅れのユーティリティであり、less利用可能な場合、私はあなたが使用する理由を考えていないmore
ネフォ

1
@Nephoにmoreは、1つの大きな利点がlessありLESSOPENます。入力プリプロセッサをサポートしていません。マニュアルページなどの生のテキストを表示しようとしている場合はmore my_docs.manlessドキュメントを掘り下げてプリプロセッサを抑制する方法を見つけるよりも、入力する方がはるかに高速です。
マーク

1
少し高速化するために、巨大なファイルのようなものを使用して呼び出しを減らすことをお勧めしless -nSます。
パイプ

10

多くの場合、必要なものを見つけるには「grep」だけで十分です。

特定の行の周囲にさらに「コンテキスト」が必要な場合は、「grep -n」を使用して目的の行の行番号を検索し、sedを使用てその行の周りのファイルの「チャンク」を印刷します。

$ grep -n 'word' file 
123:A line with with word in it 

$ sed -n '120,125p' file 
A line 
Another line
The line before
A line with with word in it 
The line after
Something else

10
sedのために必要はありませんが、あなたが使用することができますgrep -Bし、-A ライン印刷するBの EFOREと... FTERを
pLumo

7
@RoVoまたは-CのためのCの塊(両方の前と後)。
-wjandrea
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.