Vyacheslav Karamov пишет:
> Вы тогда сразу выкладывайте, что Вам там нужно. Может ещё работа с сокетами
> понадобится?AWK для этого не предназначен, увы.А значит проще будет написать
> пару строчек на Perl.
Не, начало положено, дальше я адаптирую уже сам.
Еще раз большое спасибо за помощь. Те
Вы тогда сразу выкладывайте, что Вам там нужно. Может ещё работа с
сокетами понадобится?
AWK для этого не предназначен, увы.
А значит проще будет написать пару строчек на Perl.
Pivushkov Alexandr пишет:
> Vyacheslav Karamov пишет:
>
>> Держите, лентяюшко :)
>>
>> awk '{for (i=0; i < NF; ++i)
Более правильно будет сделать даже не так, а вот так:
awk '{for (i = 1; i <= NF; ++i) if ($i=="from") {print $3 "\t" $(i+1)} }'
log.txt > output.log
Vorobyev Andrey пишет:
> 02.11.2010 18:01, Vyacheslav Karamov пишет:
> > awk '{for (i=0; i < NF; ++i) if ($i=="from") {print $3 "\t" $(i+1)}
> }
Vyacheslav Karamov пишет:
> Держите, лентяюшко :)
>
> awk '{for (i=0; i < NF; ++i) if ($i=="from") {print $3 "\t" $(i+1)} }'
> log.txt > output.log
Зачет! :)
Большое спасибо товарищ! :)
Честно признаться не думал, что кто то ответит по делу...
Только хотел отправлять, но...
Теперь уже
02.11.2010 18:01, Vyacheslav Karamov пишет:
> awk '{for (i=0; i < NF; ++i) if ($i=="from") {print $3 "\t" $(i+1)}
}' log.txt > output.log
клёве.
у меня реализация (на питоне) получилась намнго больше и медленнее :(
--
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.
sed -ne 's/^[^ ]\+ \+[^ ]\+ \+\([0-9]\+\).*from \([^ ]\+\).*/\1 \2/p'
:-)
--
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Держите, лентяюшко :)
awk '{for (i=0; i < NF; ++i) if ($i=="from") {print $3 "\t" $(i+1)} }'
log.txt > output.log
Pivushkov Alexandr пишет:
> Vyacheslav Karamov пишет:
>
>> Мануал тут http://bug.lfs06.ru/rtfm/lang/awk/awk1.0.4/
>>
> Это я тоже могу сто ссылок за пять минут и отослать к
Vyacheslav Karamov пишет:
> Мануал тут http://bug.lfs06.ru/rtfm/lang/awk/awk1.0.4/
Это я тоже могу сто ссылок за пять минут и отослать к мануалу...
>
> Можно ещё примерно так:awk '{i=split( $0, fields, "\t"); for(j=1; j<=i; j++)
> if (fields[i] =="from") {print (fields[i], "\t", $3);}}' log.txt
Vorobyev Andrey пишет:
> ..>что-то смахивает на задание из какой-нибудь лабы :-)
Эт потому, что привык писать понятно. А тогда получается очень сухой,
официальный язык :)
Задание, на самом деле, не из лабы, а из жизни :)
> а вообще, решается на любом языке с помощью регулярных выражений.
Эт
Мануал тут http://bug.lfs06.ru/rtfm/lang/awk/awk1.0.4/
Можно ещё примерно так:
awk '{i=split( $0, fields, "\t"); for(j=1; j<=i; j++) if (fields[i]
=="from") {print (fields[i], "\t", $3);}}' log.txt > output.log
Не проверял.
Vyacheslav Karamov пишет:
> Gочитай awk manual. Там несложно.
> Задач
02.11.2010 16:07, Pivushkov Alexandr пишет:
>Здравствуйте Уважаемое сообщество. Позволю себе то же спросить не в
> тему рассылки. Не обессудьте уж...
>
>Кому интересно, подскажите пожалуйста, как из строк (пусть будет файл
> source.log):
> 20006 0 231 nat 1 tcp from 213.180.у
Gочитай awk manual. Там несложно.
Задача сводится к перебору всех полей (т.е. столбцов) и нахождении поля
равного "from" и печати третьего поля, и поля номер_поля_from + 1.
Вывод перенаправить в файл.
Pivushkov Alexandr пишет:
> Здравствуйте Уважаемое сообщество. Позволю себе то же спросить не
Здравствуйте Уважаемое сообщество. Позволю себе то же спросить не в
тему рассылки. Не обессудьте уж...
Кому интересно, подскажите пожалуйста, как из строк (пусть будет файл
source.log):
20006 0 231 nat 1 tcp from 213.180.уу.х to 213.180.zzz.f
dst-port 22 via em1 keep-state
1
13 matches
Mail list logo