Доброго времени суток,
пожалуйста, подскажите, как средствами awk делается выборка строк из файла...Задача в двух словах:
в файле кроме прочих строк есть строки
...
<body>
...
...
...
<\body>
...Если задаю выборку следующим образом:
awk ' { if ( $0 ~ /\<body\>/ ) print $0 }' tads
то получаю
<body>
<\body>
а как получить только <body>???И задача состоит в выводе всех блоков
<body>
...
...
...
</body>, их в файле много, и нужно выводить целиком блоки по пять строк... как это можно реализовать?
http://www.opennet.me/openforum/vsluhforumID8/7809.html
кури, разжевывали уже
man awk
>... как этоawk '/\<body\>/ {print $0}'
>>... как это
> awk '/\<body\>/ {print $0}'Спасибо за вариант - он был описан в моем вопросе) выдает только строки с <body> и </body>, а нужны еще и строки между этими)
>строки между этими)|awk '/<\/?body>/{a=!a;next}a{print}'
>>>... как это
>> awk '/\<body\>/ {print $0}'
> Спасибо за вариант - он был описан в моем вопросе) выдает только
> строки с <body> и </body>, а нужны еще и строки между
> этими)слова "между" не было в вопросе.
>>>>... как это
>>> awk '/\<body\>/ {print $0}'
>> Спасибо за вариант - он был описан в моем вопросе) выдает только
>> строки с <body> и </body>, а нужны еще и строки между
>> этими)
> слова "между" не было в вопросе.Извините, не точно сформулировал вопрос.
cat dssdsdsd | awk -F "</?body>" '{for (i=2; i<NF; i=i+2) print $i}'
Ну и чтоб сразу второго вопроса не было
cat qwerqwer | awk -F "</?[bB][oO][dD][yY]>" '{for (i=2; i<NF; i=i+2) print $i}'