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 > output.log Не работает, к сожалению.
> Не проверял. > Vyacheslav Karamov пишет:> 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>> 10000 0 > 24435 allow tcp from 213.180.уу.х to >> 213.180.zzz.f dst-port > 80,443,3389,8000 via em1 keep-state>>>>>> вытащить число, которое стоит в > третьей позиции (здесь это "231" и >> "24435") и IP адрес. Проблема в том, > что IP может стоять где угодно в >> строке, но перед ним обязательно должен > стоять "from".>>>> уу -меняется от 55 до 76>> х меняется от 3 до 8>>>> z и f > - не рассматриваются. >>>>>> Необходимо создать файл output.log с двумя колонками:>>>> Число >>>>>> "пробел" IP>>>> Например здесь будет так:>> 231 213.180.уу.х>> 24435 >>>>>> 213.180.уу.х>> ...>>>>>> >> >>> > > -- ubuntu-ru mailing > [email protected]https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru > > -- - Пивушков Александр. Институт проблем химической физики. Черноголовка. -- ubuntu-ru mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
