Исправление PERL-запроса для парсинга данных из tcpdump
коллеги. Есть запрос:
tcpdump -e -tt -nn
С помощью него мы получаем точное время с долями секунды (6 знаков после запятой). Далее мы форматируем запрос PERLом, после чего доли секунды исчезают, остается только целая часть.
tcpdump -e -tt -nn | perl -pe 's/([0-9]*)\..*length\s([0-9]*):\s((?:\d+\.){3}\d+)\.(\d+)\s>\s((?:\d+\.){3}\d+)\.(\d+).*/$1 $2 $3 $4 $5 $6/' > traffic.log
Как изменить запрос, чтобы остались доли секунд?
Ответы (2 шт):
Автор решения: Fat-Zer
→ Ссылка
Как-то так можно:
tcpdump -e -tt -nn | \
perl -pe 's/(\d*\.\d*)\s.*length\s([0-9]*):\s((?:\d+\.){3}\d+)\.(\d+)\s>\s((?:\d+\.){3}\d+)\.(\d+).*/$1 $2 $3 $4 $5 $6/'
Автор решения: Sergey
→ Ссылка
Попробуйте заменить первую группу
([0-9]*)
на
([0-9]{10}\.[0-9]{6})
Тогда первая группа будет содержать полную запись времени

