Head

為什麼讀取文件的前幾行需要這麼長時間?

  • April 26, 2016

我有一個巨大的文本文件 ~ 33Gb,由於它的大小,我只想閱讀文件的前幾行以了解文件的組織方式。我已經嘗試過head,但它甚至需要很長時間才能完成執行。是不是因為在 UNIX 中,head需要先執行整個文件才能執行任何操作?如果是這樣,是否有更快的方法來顯示此類文件的一部分?

這並不能真正回答您的問題;我懷疑原因head很慢,正如Julie Pelletier的回答中所給出的那樣:該文件不包含任何(或許多)換行符,因此head需要閱讀大量內容才能找到要顯示的行。head當然不需要在做任何事情之前讀取整個文件,並且一旦它具有請求的行數就會停止讀取。

為了避免與換行相關的減速,或者如果您不關心查看特定數量的行,查看文件開頭的快速方法是使用dd; 例如,查看前 100 個字節hugefile

dd if=hugefile bs=100 count=1

另一個選項,在為什麼 GNU 頭/尾讀取整個文件?, 是使用以下-c選項head

head -c 100 hugefile

引用自:https://unix.stackexchange.com/questions/279276