小编Vin*_*nce的帖子

在两个匹配模式之间打印文件的行

如何打印两行之间的所有行,从第一行的一个模式开始,最后一行的另一个模式结束?


更新
我想提到这个文档是 HTML 是错误的。我似乎触动了神经,所以忘记了。除了打印文本文档的一部分之外,我并没有尝试解析 HTML 或使用它做任何事情。


考虑这个例子:

aaa
bbb
pattern1
aaa pattern2
bbb
ccc
pattern2
ddd
eee
pattern1
fff
ggg
Run Code Online (Sandbox Code Playgroud)

现在,我想打印的第一个实例之间的一切pattern1开始在一行的开头,并pattern2在另一条线的起点开始。我想在我的输出中包含pattern1pattern2行,但我不想要该pattern2行之后的任何内容。

pattern2可在该部分的其中一行中找到。我不想就此打住,但这很容易通过用^.

pattern1出现在 之后的另一行pattern2,但我根本不想看。我只是在寻找 的第一个实例pattern1和 的第一个实例之间的所有内容pattern2,包括在内。

我发现了一些几乎可以让我到达那里的东西sed

sed -n '/^pattern1/,/^pattern2/p' inputfile.txt
Run Code Online (Sandbox Code Playgroud)

...但是在下一个实例再次开始打印 pattern1

我能想到的使用方法的grep -n ... | cut -f1 -d:两次拿到两个号,然后tailhead得到我想要的部分,但我希望有一个更清洁的方式。也许awk是完成这项任务的更好工具?

当我开始工作时,我希望把它绑成一个git钩子。我也不知道该怎么做,但我仍在阅读和搜索:)

谢谢你。

grep sed awk

33
推荐指数
2
解决办法
11万
查看次数

KDE 配置文件中值开头的感叹号有什么作用?

在 中~/.kde/share/config/kdeglobals,默认 Web 浏览器的值以感叹号开头。感叹号的用途是什么?

[General]
BrowserApplication[$e]=!sensible-browser
Run Code Online (Sandbox Code Playgroud)

kde configuration

2
推荐指数
1
解决办法
933
查看次数

标签 统计

awk ×1

configuration ×1

grep ×1

kde ×1

sed ×1