 |
|
Помогите с парсингом лога.
Господа. Помогите с парсингом лога.
Лог вида:
Код:
Date/Time: 4/23/14 9:52:35 PM
Sequence number: 10333482
Event type: 2112
Event category: Internal
Priority: Informational
Event needs attention: false
Event send alert: false
Event visibility: true
Description: Controller cache battery is fully charged
Event specific codes: 0/0/0
Component type: Battery Pack
Component location: Enclosure 85, Interconnect-battery CRU pack 1, Slot 1
Logged by: Controller in slot A
Raw data:
4d 45 4c 48 03 00 00 00 2a ad 9d 00 00 00 00 00
12 21 49 00 e3 fd 57 53 09 00 00 00 00 00 00 00
00 00 00 00 04 00 00 00 22 00 00 00 22 00 00 00
09 00 00 00 55 00 00 00 01 00 00 00 02 00 00 00
10 00 00 00 01 00 00 00 0a 00 00 00 01 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 00 00 00 01 00 00 02 2c 00 00 00 20 00 00 0c
55 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
e7 2f 00 00 23 00 00 00 0a ff 00 00 0a ff 00 00
04 00 00 8c 01 00 00 00
Date/Time: 4/23/14 9:52:35 PM
Sequence number: 10333481
Event type: 730B
Event category: Internal
Priority: Informational
Event needs attention: false
Event send alert: false
Event visibility: true
Description: Battery fully charged
Event specific codes: 0/0/0
Component type: Battery Pack
Component location: Enclosure 85, Interconnect-battery CRU pack 1, Slot 1
Logged by: Controller in slot A
Raw data:
4d 45 4c 48 03 00 00 00 29 ad 9d 00 00 00 00 00
0b 73 49 00 e3 fd 57 53 09 00 00 00 00 00 00 00
00 00 00 00 04 00 00 00 22 00 00 00 22 00 00 00
09 00 00 00 55 00 00 00 01 00 00 00 02 00 00 00
10 00 00 00 01 00 00 00 0a 00 00 00 01 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 00 00 00 01 00 00 02 2c 00 00 00 20 00 00 0c
55 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
e7 2f 00 00 23 00 00 00 0a ff 00 00 0a ff 00 00
04 00 00 8c 01 00 00 00
Date/Time: 4/23/14 9:21:53 PM
Sequence number: 10333480
Event type: 211C
Event category: Internal
Priority: Informational
Event needs attention: false
Event send alert: false
Event visibility: true
Description: Battery pack is charging
Event specific codes: 0/0/0
Component type: Battery Pack
Component location: Enclosure 85, Interconnect-battery CRU pack 1, Slot 1
Logged by: Controller in slot A
Raw data:
4d 45 4c 48 03 00 00 00 28 ad 9d 00 00 00 00 00
1c 21 49 00 b1 f6 57 53 09 00 00 00 00 00 00 00
00 00 00 00 04 00 00 00 22 00 00 00 22 00 00 00
09 00 00 00 55 00 00 00 01 00 00 00 02 00 00 00
10 00 00 00 01 00 00 00 0a 00 00 00 01 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 00 00 00 01 00 00 02 2c 00 00 00 20 00 00 0c
55 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
70 2f 00 00 22 00 00 00 1c f2 00 00 0a ff 00 00
04 00 00 8c 01 00 00 00
Этот лог формируется командой каждую минуту, которая выводит последние 100 событий и перезаписывает его.
Хотелось бы получить вывод следующего вида:
Код:
4/23/14 9:52:35 PM | 10333480 | Battery Pack | Enclosure 85, Interconnect-battery CRU pack 1, Slot 1 | Battery pack is charging
Т.е. выводить поля Date/Time, Sequence number, Component type, Component location, Description в табличном виде с разделителем |. Хитрость еще в том, чтобы проверять Sequence number, т.к. лог перезаписывается полностью события могут дублироваться.
Заранее благодарен.
|
Решено через PowerShell:
Код:
$rex = "^(Date/Time|Sequence number|Component type|Component location|Description)"
$z = (Get-Content log.txt) -match $rex -replace ": ","=" | ConvertFrom-StringData
$result = for($i=0;$i -lt $z.count;$i += 5) {
"{0} | {1} | {2} | {3} | {4}" -f $($z[$i].Values),$($z[$i+1].Values),$($z[$i+3].Values),$($z[$i+4].Values),$($z[$i+2].Values)
}
$result | Sort {$_.split("|")[1]} -Unique
$result | Out-File result.txt
|
Время: 02:46.
© OSzone.net 2001-