Я видел пару решений для печати между шаблонами, но не смог собрать вещи, чтобы удовлетворить мою проблему. У меня есть текстовый файл, содержащий определение вида, как показано ниже, и нужно извлечь определение между первой и последней фигурными скобками. Обратите внимание: между ними должны быть напечатаны открытые и закрытые фигурные скобки. любое решение в 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')
необходимого потока:
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
Число символов перед первой открытой скобкой может меняться, поскольку имя вида может измениться. Что касается последней закрывающей круглой скобки, больше не будет символов. Я надеялся, что будет способ идентифицировать последнее происшествие ... и, конечно же, первое – user3013114