在 Linux 中从文件打印特定的行块

如果您有一个大文件要导入,或者有一个日志文件要解析,那么您很少想将它直接打印到屏幕上。使用像 more 这样的命令或像 vim 这样的程序可以使事情变得更容易一些,但您仍然需要遍历可能数以千计的行来找到正确的块。

要从文件中加载一些特定的行,您可以使用head和 tail 命令的组合。以下命令将从名为“bigfile.txt”的大文件中打印出第 200 到 220 行。的头部的命令将打印出从一个文件,然后将其用管道输送到第一线220尾部,通过前面的命令生成打印出仅最后20条的输出的线命令。

head -n 220 bigfile | tail -n 21

或者,您可以使用sed从大文件中打印出相同的块。

sed -n 200,220p bigfile

使用sed可能是更好的方法,因为它使用单个命令来生成输出。将 head 的输出通过管道传输到 tail 的问题在于 head 命令会将它找到的所有行传递给 tail 命令,这可能会占用大量内存(当然取决于文件大小)。