Есть тестовый файл из нескольких строк. Необходимо получить группу строк, идущих подряд между двумя ключевыми строками, удовлетворяющими заданному условию. Причем в искомых строках условие поиска не выполняется как для ключевых строк, поэтому простое применение grep здесь не прокатит.Может кто знает, как сделать это средствами shell (bash, sh: wc, awk, sed, grep ...) или perl ?
writing' this from M$ MuzDIE without russian locale,so sorry for poor english. %)
2 solve your problem i'd recommend U 2 use bash+awk
for example u've got fileqwe
111
###
$$$
%%%
222
asdand u need 2 get lines between 111 and 222,i.e. (###,$$$,%%%)
try awk scipt like this
BEGIN {fl=0}
{
if ($0=="111")
fl=1;
else if ($0=="222")
fl=0;
else if (fl==1)
print $0;
}
it's 'good' bat not 'cool'.
Спасибо за участие. Довольно аккуратное решение. Хотелось сделать это одной строкой - да видно я слишком размечтался.
Y-e-e-S!! Еще раз убеждаюсь - сам не потопаешь - сам не полопаешь.
Решение выглядит так:awk '/шаблон_ключа_1/,/шаблон_ключа_2/'