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

Unix中找到特定文本模式后截断文件剩余内容的方法

解决方法

用 sed 处理(最常用)

默认sed是逐行处理的,所以你之前的.*只能匹配到行尾。要截断到文件末尾,试试这几种写法:

1. 直接删除"Check list"所在行及之后的所有内容

sed '/Check list/,$d' your_html_file.html
  • /Check list/:定位到包含该字符串的行
  • ,$d:删掉从该行到最后一行的所有内容

2. 保留"Check list"所在行,只删后面的内容

如果想留下目标行,用这个更高效的写法:

sed -n '1,/Check list/p' your_html_file.html
  • -n:只打印指定范围的内容
  • 1,/Check list/p:输出从第一行到包含"Check list"的行的全部内容,自动截断后续部分

用 awk 处理

awk写起来更简洁,两种场景:

1. 不保留"Check list"所在行

awk '/Check list/{exit}1' your_html_file.html
  • 碰到含"Check list"的行就直接退出,之前的所有行会被打印出来

2. 保留"Check list"所在行

awk '1;/Check list/{exit}' your_html_file.html
  • 先打印当前行,再判断是否退出,所以目标行会被保留

一步完成下载+截断+提取数据

不用先存文件,直接把wget的输出通过管道传给处理命令,再做grep:

wget -qO- "http://你的目标网址" | sed -n '1,/Check list/p' | grep "你要提取的模式"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:15:50