[Comm] awk question
Olga
=?iso-8859-1?q?laedel_=CE=C1_pochtamt=2Eru?=
Ср Мар 19 01:45:29 MSK 2003
Vadim Vinichenko <vnv на 14000.ru> пишет:
> Уважаемые коллеги,
>
> Подскажите, пожалуйста, можно ли, используя awk (разделитель - пробел),
> заставить его считать подстроку в кавычках одним полем, независимо от
> наличия пробелов внутри. То есть, для:
>
> aaa bbb "ccc ddd eee"
>
> $3 должно быть равно "ccc ddd eee" (или ccc ddd eee, без кавычек).
>
> Я, собственно, разбираю лог веб-сервера, а там строка идентификации
> агента содержит пробелы. Что-то я не могу найти ответа на свой вопрос в
> документации. Или это уже не к awk?
Если нужны все поля, то можно выдрать из строки заковыченное и использовать
отдельно (параллельно с оставшейся частью).
Примерно так (ведь в логе, кажется, только одно заковыченное поле):
{quot=$0; gsub("(.* \"|\" .*)", "", quot); gsub("\".*\"", "");
#собственно обработка quot и полей из $0
}
заковыченное будет в переменной quot, остальное - в $0, которую можно
анализировать как обычно.
Ну а если нужно только заковыченное - проще переопределить разделитель:
gawk -F \" 'Ваш скрипт'
--
С уважением, (>|<)
OL |
Подробная информация о списке рассылки community