2016-04-24 9 views
1

Dies ist der Inhalt der Log-Datei Ich habeuniq überspringen ersten N Zeichen/Felder

{"timestamp":"2016-04-20T12:24:35","event_type":"alert","src_ip":"198.55.103.12","src_port":44927,"dest_ip":"127.0.0.1","dest_port":9200,"honeypot":{"name":"Elasticpot","n$ 
{"timestamp":"2016-04-20T12:24:36","event_type":"alert","src_ip":"198.55.103.12","src_port":44927,"dest_ip":"127.0.0.1","dest_port":9200,"honeypot":{"name":"Elasticpot","n$ 
{"timestamp":"2016-04-20T12:24:37","event_type":"alert","src_ip":"198.55.103.12","src_port":44927,"dest_ip":"127.0.0.1","dest_port":9200,"honeypot":{"name":"Elasticpot","n$ 
{"timestamp":"2016-04-20T12:24:38","event_type":"alert","src_ip":"198.55.103.12","src_port":44927,"dest_ip":"127.0.0.1","dest_port":9200,"honeypot":{"name":"Elasticpot","n$ 

bash verwenden, möchte ich einzigartige Linien grep und das Ergebnis in einer Text-Datei setzen. Ich möchte das Timestamp-Feld bei der Überprüfung der Eindeutigkeit überspringen, da, wie Sie sehen können, diese vier Zeilen abgesehen von dem Zeitstempel identisch sind. Dies ist, was habe ich bisher:

sudo grep "alert" /home/tsec/prototype/logs/elasticpot.log | uniq | tail -n 10 > /home/tsec/prototype/logs/extractedlogs/elasticpotresult.log 

So ist die Ausgabe in einer CSV-Datei sein sollte:

{"timestamp":"2016-04-20T12:24:38","event_type":"alert","src_ip":"198.55.103.12","src_port":44927,"dest_ip":"127.0.0.1","dest_port":9200,"honeypot":{"name":"Elasticpot","n$ 

Ich habe mit dem Flag -f sicher einzigartig verwenden, aber nicht sicher, wie. Danke für die Hilfe!

Antwort

2
sort -u -t, -k2,8 elasticpot.log 
  • -u → für einzigartige

  • -t, → Komma ist das Trennzeichen

  • -k2,8 → Schlüsselfelder sind 2 bis 8 (Oder-k2 → Schlüsselfelder sind von 2 bis Ende)

Testergebnis:

{"timestamp":"2016-04-20T12:24:35","event_type":"alert","src_ip":"198.55.103.12","src_port":44927,"dest_ip":"127.0.0.1","dest_port":9200,"honeypot":{"name":"Elasticpot","n$ 
+0

Thankyou so much! – firepro20

Verwandte Themen