我有一个巨大的文本文件 ~ 33Gb,由于其大小,我只想阅读文件的前几行以了解文件的组织方式。我尝试过head
,但花了很长时间才完成跑步。是因为在 UNIX 中,head
需要先运行整个文件才能执行任何操作吗?如果是这样,是否有更快的方法来显示此类文件的一部分?
答案1
这并不能真正回答你的问题;我怀疑速度慢的原因head
如下朱莉·佩尔蒂埃的答案:该文件不包含任何(或许多)换行符,因此head
需要阅读大量文件才能找到要显示的行。head
当然不需要在执行任何操作之前读取整个文件,并且一旦达到请求的行数,它就会停止读取。
为了避免与换行相关的速度减慢,或者如果您不关心查看特定的行数,查看文件开头的快速方法是使用dd
;例如,要查看 的前 100 个字节hugefile
:
dd if=hugefile bs=100 count=1
另一种选择,给出为什么 GNU head/tail 读取整个文件?,是使用-c
以下选项head
:
head -c 100 hugefile
答案2
我唯一见过类似的情况是文件没有换行,因为head
只从文件中读取所需的行数。