С awk знаком на уровне простых операций. Задача стоит парсить tcpdump и писать в mysql, возможно даже не через буфер (написал хорошие правила для tcpdump'a). Вот такого вида пакеты:
E..6....t......b....9.)..".G................sOmEtext1. IP 00.000.00.00.0000 > 000.000.000.000.00000: UDP, length: 30 E..:l.../..;H.Ht.....W)..&A.............B...[some]text2. IP 00.0.000.0.00000 > 000.000.000.000.00000: UDP, length: 31 E..7.
..s...b..)....2.)..#. ............Va.%some-text. IP 000.00.000.0.0000 > 000.000.000.000.00000: UDP, length: 26 E..e.|..0...H.......;.)..Q........$=:H6_n}{e]0"{+3B%{^W6D+SE_W7?m"Pj#m2{337^Q}@ N)HCVk3I#?%BCFHCanT/4.
"sometext" может состоять из символов "a-z A-Z 0-9 - _" и иногда даже "." Он находится всегда в конце строки, которая может содержать перевод строки в любом виде (dos/linux). В mysql нужны две записи с одного пакета - sometext и IP (без порта) либо ни одной, если мусор (3й пакет). Мусор могу частично убрать за счет length, целые пакеты по 15-40.
пытался начинать так: awk 'BEGIN { RS = "\x45\x2E" ; FS = "IP" } { тут застрял }' всравно много мусора, все что я 100% имею это когда "E." на новой строке - новый пакет (RS) и "IP [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" тоже всегда с новой строки, неизменного вида. Подключать perl или php не хочется.