用 sed 打印文件前 n 行需使用 sed -n '1,np' filename,必须加 -n 抑制默认输出,否则会重复打印;该写法通用可靠,优于 head 的优势在于可与其他 sed 命令链式组合处理。

用 sed 打印文件前几行,核心是用地址范围配合 -n 选项加 p 命令,避免默认输出全部内容。
打印前 N 行(比如前 5 行)
直接指定行号范围:
-
sed -n '1,5p' filename—— 打印第 1 到第 5 行(含头尾) - 把
5换成你要的数字即可,如前 3 行就写'1,3p'
更简洁的写法(适用于较新版本 sed)
部分 GNU sed 支持 ~ 步长语法,但打印“前 N 行”仍推荐用 1,Np;不过若想强调“从第 1 行开始、每行都取直到第 N 行”,1,5p 最通用可靠。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
注意 -n 选项不能省略
不加 -n 会先输出匹配行,再把整文件刷一遍:
-
sed '1,5p' filename→ 实际输出 5 行 + 全文件(共重复 + 多余) -
sed -n '1,5p' filename→ 只输出那 5 行,干净准确
补充:和其他命令对比
虽然 head -n 5 filename 更直观,但 sed 的优势在于后续可无缝衔接其他操作(如替换、过滤后再取前几行):
- 例如:只取包含
error的前 3 行 →sed -n '/error/{x;/^$/!{x;p;};x;s/^/x/;}' filename | sed -n '1,3p'(稍复杂,但可组合) - 或更常用写法:
grep 'error' filename | head -3(语义清晰,推荐日常用)










