Здравствуйте
Имеем вывод tcpdump в котором все поля идут через пробелы, кроме второго - оно отделено от третьего точкойtcpdump -i eth0 | awk '{print $1, $2, $3}'
получаем второе и третье поле во втором
tcpdump -i eth0 |awk -F . '{print $1, $2, $3}'
получаем что все поля в строке разделяются точками а нам надо только одно поле выделить
tcpdump -i eth0 | awk $2~/.$/ '{print $1, $2, $3}'
не работает хотя в доке написано что есть выражение "$2~/a$/" - a последний символ 2-го поля
как мне отделить два поля разделенные точкой?
>Здравствуйте
>Имеем вывод tcpdump в котором все поля идут через пробелы, кроме второго
>- оно отделено от третьего точкой
>получаем второе и третье поле во втором
>как мне отделить два поляНу, как-нибудь вот так -
$ echo "a b.c.x d e.f"|gawk '{sub(/\./," ",$2); $0=$0; print $1":"$2":"$3}'
a:b:c.x
$ _
>Здравствуйте
>Имеем вывод tcpdump в котором все поля идут через пробелы, кроме второго
>- оно отделено от третьего точкой[...]
>как мне отделить два поля разделенные точкой?Используйте ф-цию split() с точкой в качестве разделителя.
>как мне отделить два поля разделенные точкой?Ещё один инструмент:
http://sed.sourceforge.net/sedfaq.html$ echo "aaa bbb.ccc ddd eee...fff" | sed 's/\./ /'
aaa bbb ccc ddd eee...fff
$ echo "aaa bbb.ccc ddd eee...fff" | sed 's/\./ /g'
aaa bbb ccc ddd eee fff