You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sed显示文件末尾指定行?以显示倒数第5行为例

用sed显示文件倒数第5行的几种实用方法

嘿,这个需求我太熟了!要快速拿到文件的倒数第5行,用sed有好几种靠谱的实现方式,我给你整理几个最常用的:

方法1:tail + sed组合(最简单直观)

如果你的环境允许搭配其他工具,这个组合是最省心的——先用tail提取文件最后5行,再用sed只打印这5行里的第一行,刚好就是原文件的倒数第5行:

tail -n 5 your_file.txt | sed -n '1p'
  • 简单解释:tail -n 5负责输出文件的最后5行;sed -n '1p'则只保留输入内容的第一行,完美命中我们要的目标行。

方法2:纯sed单命令实现(无需依赖其他工具)

如果只能用sed,这个纯sed的写法也能搞定,核心逻辑是在处理过程中始终维护最后5行的内容,最后精准提取目标行:

sed -n 'H;${x;s/^\n//;s/\n/\x00/g;s/^\(.*\x00\)\{4\}//;s/\x00/\n/g;p}' your_file.txt
  • 逻辑拆解:先把所有行读到sed的保持空间里,接着用特殊分隔符替换换行,去掉前4个分隔符对应的行(也就是倒数第5行之前的所有内容),最后恢复换行并打印剩下的第一行,就是我们要的倒数第5行。

额外补充:awk备选方案(高效又简洁)

虽然你问的是sed,但awk在处理这类行号需求时效率很高,给你个顺手的备选:

awk '{lines[NR%5] = $0} END {print lines[(NR-4)%5]}' your_file.txt
  • 解释:用数组循环存储最近的5行内容,文件处理完成后,通过计算数组下标直接定位并输出倒数第5行。

内容的提问来源于stack exchange,提问作者Eneen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:58:50