awk一个文件中两个单词之间的所有行,多次出现

时间:2017-08-17 21:20:44

标签: regex bash awk

我试图在WHERE和GROUP之间获取一些SQL代码中的所有行,我有下面的内容,这让我第一次出现在WHERE和GROUP之间的文本,但是在我之后有多次出现相同的

awk '/WHERE/{p=1} p; /GROUP/{exit}' filename.txt

输出

WHERE something Some SQL code GROUP BY something

代码的多个部分以WHERE开头,以我想要输出的文件结束GROUP BY

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

contextMenuHolder最好在这些方面做点什么:

awk

awk '/WHERE/{f=1} f; /GROUP/{f=0}' file 范围运算符awk,的工作方式类似。但是,很难修改并限制awk可以执行的操作。

一旦你的awk习惯包括使用标志(而不是范围),就会更容易在标记之间打印,例如:

sed

使用范围运算符是不可能的。

答案 1 :(得分:-1)

awk '/WHERE/,/GROUP/' filename.txt