Привет.
Подскажите, как справиться с проблемой.
Есть лог такого вида с коммутаторов д-линк:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
kakaka@server ~ $ cat -v tmp | grep -A 12 -i "sh log"
^MDES-3526:admin#sh log^M
^MCommand: show log^M
^M^M
^MIndex Time Log Text ^M
^M----- ------------------- ----------------------------------------------------^M
^M604 2010/08/05 06:32:14 Successful Enable Admin through Telnet from 165.14.5^M
^M 0.1 authenticated by AAA server 83.202.172.85 (Usern^M
^M ame: gelb, MAC: 00-00-00-00-00-00)^M
^M603 2010/08/05 06:32:14 Successful login through Telnet from 165.14.50.1 aut^M
^M henticated by AAA server 83.202.233.194 (Username: g^M
^M elb, MAC: 00-00-00-00-00-00)^M
^M602 2010/08/05 04:58:18 Port 22 link up, 100Mbps FULL duplex ^M
^M601 2010/08/05 04:58:13 Port 22 link down ^M
|
Как видите вывод этих железок содержит непечатные символы, что несколько усложняет работу с логом. Мне нужно, чтобы каждая строка начиналась с номера записи в логе (в куске, что я привел запси с 604 по 601) и тайм стампа, как и положено. Все портит многострочный вывод записей под номерами 603 и 604. По моей задумке нужно подобрать regexp, к строкам 8,9 и 11,12, чтобы потом можно было удалить все непечатные символы и объединить нужные строки.