Nowe posty

Autor Wątek: Wyciąganie określonego pola z linii tekstu  (Przeczytany 2555 razy)

akuligowski

  • Gość
Wyciąganie określonego pola z linii tekstu
« dnia: 2010-12-25, 17:45:54 »
borykam się z pewnym problemem i nie mogę sobie z nim poradzić, stąd moja prośba o pomoc. Potrzebuję wyciągnąć pojedyncze pole (o różnej wartości) z linii tekstu. Linią jest dowolna reguła dla programu Snort, która wygląda np. tak jak poniżej:

alert udp $HOME_NET any -> any 53 (msg:"BLACKLIST DNS request for known malware domain www.goodfriends.or.kr"; classtype:trojan-activity; sid:18091; rev:1;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 10202:10203 (msg:"EXPLOIT Computer Associates license PUTOLF overflow attempt"; depth:6; offset:3; sid:3517; rev:7;)
a ja chcę wyciągnąć z każdej reguły  tylko część 'sid:numer; rev:numer;', a najlepiej same numery bez poprzedzających je opisów.
Reguły mogą mieć różną ilość pól, ale numery sid i rev zawsze znajdują się na końcu reguły, tak jak w powyższych dwóch regułach.

Próbowałem to zrobić poleceniem:
echo $line | grep -EH '(sid:[0-9]{1,};)\\s*(rev:[0-9]{1,};)'
ale bezskutecznie.

arctgx

  • Gość
Wyciąganie określonego pola z linii tekstu
« Odpowiedź #1 dnia: 2010-12-25, 21:12:47 »
Próbowałeś awka i jego zmiennych NF i FS?