URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9906
[ Назад ]

Исходное сообщение
"выборка с помощью sqk"

Отправлено the_strelock , 23-Сен-14 15:37 
Доброго времени суток,
пожалуйста, подскажите, как средствами awk делается выборка строк из файла...

Задача в двух словах:

в файле кроме прочих строк есть строки
...
<body>
...
...
...
<\body>
...

Если задаю выборку следующим образом:
awk ' { if ( $0 ~ /\<body\>/ ) print $0 }' tads
то получаю
<body>
<\body>
а как получить только <body>???

И задача состоит в выводе всех блоков
<body>
...
...
...
</body>, их в файле много, и нужно выводить целиком блоки по пять строк... как это можно реализовать?


Содержание

Сообщения в этом обсуждении
"выборка с помощью sqk"
Отправлено Pahanivo , 23-Сен-14 18:35 
http://www.opennet.me/openforum/vsluhforumID8/7809.html
кури, разжевывали уже

"выборка с помощью sqk"
Отправлено Led , 24-Сен-14 01:39 
man awk

"выборка с помощью sqk"
Отправлено pavlinux , 24-Сен-14 04:41 
>... как это

awk '/\<body\>/ {print $0}'


"выборка с помощью sqk"
Отправлено the_strelock , 24-Сен-14 16:31 
>>... как это
> awk '/\<body\>/ {print $0}'

Спасибо за вариант - он был описан в моем вопросе) выдает только строки с <body> и </body>, а нужны еще и строки между этими)


"выборка с помощью sqk"
Отправлено Andrey Mitrofanov , 24-Сен-14 17:01 
>строки между этими)

|awk '/<\/?body>/{a=!a;next}a{print}'


"выборка с помощью sqk"
Отправлено pavlinux , 24-Сен-14 20:49 
>>>... как это
>> awk '/\<body\>/ {print $0}'
> Спасибо за вариант - он был описан в моем вопросе) выдает только
> строки с <body> и </body>, а нужны еще и строки между
> этими)

слова "между" не было в вопросе.


"выборка с помощью sqk"
Отправлено the_strelock , 24-Сен-14 21:04 
>>>>... как это
>>> awk '/\<body\>/ {print $0}'
>> Спасибо за вариант - он был описан в моем вопросе) выдает только
>> строки с <body> и </body>, а нужны еще и строки между
>> этими)
> слова "между" не было в вопросе.

Извините, не точно сформулировал вопрос.


"выборка с помощью sqk"
Отправлено pavlinux , 25-Сен-14 02:07 

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}'