Ich habe den folgenden Eintrag in meiner Protokolldatei.Getrennte Zeichenkettenvariable der Protokolleingabe- und -ausgabeteile in Textdatei (PERL)
[2016-04-17 10:12:27:682011 GMT] tcp 115.239.248.245:1751 -> 192.168.0.17:8080 52976f9f34d5c286ecf70cac6fba4506 04159c6111bca4f83d7d606a617acc5d6a58328d3a631adf3795f66a5d6265f4d1ec99977a5ae8cb2f3133c9503e5086a5f2ac92be196bb0c9a9f653f9669495 (312 bytes)
Ich möchte ein Skript schreiben, um diese eine Zeile Zeichenfolge in Stücke aufzuteilen, um einige dieser Stücke in einer CSV-Datei für maschinelles Lernen zu schreiben. Bis jetzt habe ich dieses Skript, um ein bestimmtes Muster zu finden und, wenn gefunden, schreiben, was es gegeben wurde, zu finden, hardcoded Suche. Das ist nicht was ich will. Das ist das Skript, das ich gerade habe.
#!/usr/bin/perl -w
$path1 = "/home/tsec/testwatch/attackerresult.log";
$attacker = ">>/home/tsec/testwatch/attacker.csv";
#$path2 =
#$path3 =
#$path4 =
#function definition #Pattern for attackerlog only
sub extractor(){
open(LOG, $path1) or die "Cant't open '$path1': $!";
open(FILE, $attacker) or die "Can't open '$attacker': $!";
$target = "tcp";
while(<LOG>){
if(/$target/){
print FILE $target . "\n";
}
}
}
close(LOG);
close(FILE);
Ich möchte die Ausgabe in der CSV-Datei, so etwas sein:
ich die csv tun Titel manuell
(Titel) Protokoll, Quell-IP-Adresse, Source Port, Dateigröße kann
(String Ergebnis aus script) tcp, 127.0.0.1, 8080, 312
Das obige ist nur ein Beispiel.
Irgendeine Idee?
Die erforderliche Ausgabe erscheint mit dem Eingang in keinem Zusammenhang zu sein, die Ihnen zeigen – Borodin
[at PerlMonks x-posted] (http://perlmonks.org/?node_id=1160718) – stevieb