33GB程度の巨大なテキストファイルがありますが、サイズが大きいので、ファイルの構成方法を理解するために、ファイルの最初の数行だけを読みたいと思います。試しましたが、head
実行を完了するのに長い時間がかかりました。 UNIXでは、head
操作を実行する前にファイル全体を実行する必要があるためですか?もしそうなら、そのファイルの一部を表示するより速い方法はありますか?
答え1
これは実際にあなたの質問に答えません。速度が遅くなる理由head
は次のとおりです。ジュリー・ペレティエ回答:ファイルには改行文字がまったく含まれていないため、表示したいhead
行を見つけるには多くのファイルを読む必要があります。head
もちろん、操作を実行する前にファイル全体を読み込む必要はなく、要求された行数に達すると読み取りが停止します。
改行に関連する速度の低下を避けたり、特定の行数を表示したりすることを気にしない場合は、ファイルの先頭を表示する簡単な方法は、たとえばdd
最初の100バイトを表示することですhugefile
。
dd if=hugefile bs=100 count=1
別のオプションが提供されます。GNUヘッド/テールはなぜファイル全体を読むのですか?、-c
次のオプションを使用しますhead
。
head -c 100 hugefile
答え2
head
私がこれが起こっているのを見た唯一のケースは、ファイルから必要な数の行だけを読んだので、ファイルに改行文字がないときでした。