【问题标题】:Using sed to get a specific part of a text使用 sed 获取文本的特定部分
【发布时间】:2021-10-22 10:32:36
【问题描述】:

我正在尝试删除所有内容,但该索引文件第 570 行中的描述文本除外。我希望它是可变的,以便我可以使用此脚本从另一个索引文件中提取相同的“子弹列表抽屉”描述。 我尝试使用的是
sed 's/.*overview-content\(.*div>\).*$//p' 来获得我想要的部分的粗略部分。
后来我会尝试清理它。我仍然对 sed 命令感到有些困惑 ^^
提前谢谢大家!

https://pastebin.com/xuibF4d8

【问题讨论】:

  • 您需要一个 HTML 解析器来解析 HTML。正则表达式无法解析 HTML。

标签: html sed


【解决方案1】:
  1. 假设输入文件被称为index.html,并且需要的行 是目标字符串之后的三行,(如引用的 pastebin 数据文件),这应该可以工作:

    sed -n '/overview-content/{n;n;n;p;q}' index.html
    
  2. 一种更灵活的方法(不需要输出在三行之后)是使用grep 扫描目标字符串之后的第一个<p>

    grep -A 300 'overview-content' index.html | 
    grep -m 1 '<p>'
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多