【问题标题】:Unix Shell sed - don't print last patternUnix Shell sed - 不打印最后一个模式
【发布时间】:2015-01-19 22:15:36
【问题描述】:

我试图弄清楚,如何使用 sed 在不打印第二个模式的情况下获取模式之间的线条(在我的情况下是 html 标签的部分)。如果有 2 个以上的匹配项,则会出现问题。

我试着用一个例子来解释: 文件:

...
Keyword #1
animal
rainbow
train
Keyword #2
...
Keyword #1
female
lawyer
monkey
rainbow
Keyword #2

我的预期结果:

Keyword #1
animal
rainbow
train
Keyword #1
female
lawyer
monkey
rainbow

那么是否可以在匹配后忽略每个“最后一个模式”?

第二个例子:

我正在使用开头模式来查找下一个关键字。 但它也在关键字#1的声明中......

<p href=... Keyword#1 ....

Keyword#2 is  "<p"

我正在使用

<p TAG 

定义最后一个模式

【问题讨论】:

  • 你能显示你的sed 命令吗?
  • sed -n "/$temp/,/

    result.tmp 但这会删除相同的关键字..

标签: shell unix sed


【解决方案1】:

这个awk 可能会:

awk '/Keyword #1/ {f=1} /Keyword #2/ {f=0} f' file
Keyword #1
animal
rainbow
train
Keyword #1
female
lawyer
monkey
rainbow

它将使用一个开始关键字和一个停止关键字。

【讨论】:

  • 我现在就是这样做的 :) 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多