在linux系统中,cat命令是常用的文件查看工具,但本身不支持直接指定查看文件的前几行内容,需要结合其他命令或参数组合来实现需求,同时也有更适配查看前几行场景的专用命令。

cat结合head命令查看前几行
最常用的方法是通过管道符将cat的输出传递给head命令,head命令本身的作用就是查看文件的开头部分,默认显示前10行,也可以通过-n参数指定显示的行数。
基本语法如下:
# 查看文件前10行(默认) cat 文件名 | head # 查看文件前5行 cat 文件名 | head -n 5 # 也可以简化为 head -n 5 文件名,不需要额外使用cat head -n 5 test.txt
这里的|是管道符,作用是把前一个命令的输出作为后一个命令的输入,cat读取文件内容后传递给head,head再按照指定的行数截取输出。
直接用head命令查看前几行
实际上如果只是需要查看文件前几行,不需要先使用cat命令,head命令可以直接接收文件路径作为参数,执行效率更高,减少了不必要的命令调用。
常见用法示例:
# 查看test.txt前3行 head -n 3 test.txt # 如果省略-n参数,直接写数字也可以,效果一致 head -3 test.txt # 查看多个文件的前2行,会在每个文件内容前标注文件名 head -n 2 a.txt b.txt
cat结合sed命令实现前几行查看
除了head命令,也可以使用sed流编辑器来实现查看前几行的需求,sed可以通过指定行号范围来输出内容,适合已经熟悉sed命令语法的用户。
# 查看文件前5行,sed的1,5p表示打印1到5行内容 cat test.txt | sed -n '1,5p' # 直接对文件执行sed命令,不需要cat sed -n '1,5p' test.txt
这里的-n参数是sed的静默模式,默认不输出内容,只输出我们指定的p打印操作匹配到的行。
不同方式对比
以下是几种常见查看前几行方式的对比:
| 方式 | 语法复杂度 | 执行效率 | 适用场景 |
|---|---|---|---|
| cat | head | 中等 | 一般 | 已经习惯使用cat查看文件,临时需要截取前几行 |
| head -n 数字 文件 | 简单 | 高 | 单纯需要查看文件前几行,无额外操作需求 |
| sed -n '1,数字p' 文件 | 较高 | 高 | 熟悉sed命令,同时需要对行做其他编辑操作 |
操作注意事项
- head命令的
-n参数后面跟的数字必须是正整数,如果输入0或者负数,会提示参数错误。 - 如果查看的文件不存在,命令会返回No such file or directory的错误提示,需要先确认文件路径是否正确。
- 对于超大文件,使用head命令查看前几行的速度远快于cat查看全部内容再截取,因为head读取到指定行数后就会停止读取文件,减少IO消耗。
- 如果需要查看文件末尾的几行内容,可以使用
tail命令,语法和head类似,例如tail -n 5 test.txt查看最后5行。
总结:cat本身无法直接查看文件前几行,最推荐的方式是直接使用head命令,语法简单且执行效率高,不需要额外搭配cat使用,只有在特殊场景下需要结合其他命令组合时才考虑使用cat管道的方式。