我已经看到了一些在模式之间打印的解决方案,但无法将它们放在一起以迎合我的问题。 我有一个文本文件,其中包含如下所示的视图定义,并需要提取第一个和最后一个大括号之间的定义。 请注意:在两者之间应该打开和关闭大括号。 在awk或sed中的任何解决方案?awk或sed在模式的第一次出现和模式的最后一次出现之间打印文本
create view view_name
as(select column1 as someDATE,
column2,
column3,
substring(convert(char(19),(DATEadd(hh,8,column4)),121),12) as someTIME,
from table_name
where NAME in('test')
and column5='something')
输出reqired:
select column1 as someDATE,
column2,
column3,
substring(convert(char(19),(DATEadd(hh,8,column4)),121),12) as someTIME,
from table_name
where NAME in('test')
and column5='something'
这将有助于了解围绕此模式的内容。我想剥去最后一个字符(右括号)和前24个字符是没用的。特别是:你如何认识到模式的结束?只能*通过正确计算开始和结束括号来完成*然后我会建议使用一个像样的解析器,而不仅仅是'sed'或'awk'。 – Alfe
第一个左括号之前的字符数可能会有所不同,因为view_name可能会更改。至于最后一个右括号,则不会有其他字符。我希望能够找到最后发生的一种方法...当然,第一个 – user3013114