2016-07-19 16 views
1

Ich möchte die Protokollmeldungen zwischen zwei Daten extrahieren. Das Problem ist, dass das Datumsformat wie folgt ist.wählen Sie Protokollnachrichten zwischen zwei Daten

[[email protected] test]$ cat file 
May 1 06:00:08 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,E,RTT,125,50,200,5,601,17635626,50,15841153,4928488,14274344,0,-,17560 
May 12 06:00:08 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,E,RTT,125,50,200,5,601,17635626,50,15841153,4928488,14274344,0,-,17560 
May 13 06:00:07 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,55,50,200,5,813,10000000000,96,22859361,5306968,19470856,0,-,17559 
May 14 06:00:07 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,56,50,200,5,762,10000000000,96,17805577,4979448,13233936,0,-,17559 
May 15 06:00:07 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,56,50,200,5,848,10000000000,96,19767812,5691888,14387304,0,-,17559 
Jun 10 06:00:08 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,E,RTT,125,50,200,5,601,17635626,50,15841153,4928488,14274344,0,-,17560 
Jun 11 06:00:07 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,55,50,200,5,813,10000000000,96,22859361,5306968,19470856,0,-,17559 
Jun 15 06:00:07 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,56,50,200,5,762,10000000000,96,17805577,4979448,13233936,0,-,17559 
Jul 10 06:00:07 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,55,50,200,5,813,10000000000,96,22859361,5306968,19470856,0,-,17559 
Jul 14 06:00:07 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,56,50,200,5,848,10000000000,96,19767812,5691888,14387304,0,-,17559 
Jul 15 06:00:06 localhost my_process: MyField,BRAS_VCI,1,1,10000000,10000000000,-,RTT,56,50,200,5,968,10000000000,96,20602499,4746960,20327184,0,-,17559 

Ich versuchte das unten, aber bekam Fehler.

[[email protected] test]$ cat file | awk -vBegin=$(date -d"Jun 14 05:39:00" +%s) 'system("date -d\"$1 $2 $3\" +%s") > Begin {print $0}' 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
1468900800 
+1

vielleicht kann http://stackoverflow.com/questions/34311140 Hilfe ? Viel Glück. – shellter

Antwort

2

Wenn Zeilen in der Protokolldatei nach Datum geordnet werden (was wahrscheinlich ist), sed wird schön die Arbeit machen

$ begin='May 12'; end='Jun 15' 
$ sed -ne "/^$begin/,/^$end/p" input 
+0

Danke! Dies erfordert jedoch, dass eine Protokollnachricht mit dem genauen Start- und Enddatum in der Protokolldatei vorhanden sein muss. Hier funktioniert das nicht, wenn keine Protokollnachricht mit dem Datum "12. Mai" oder "15. Juni" vorhanden ist. –

Verwandte Themen