Abend,
habe ein Script geschrieben, welches mir den Inhalt aller Dateien in einem Verzeichnis durchsucht. Als Ausgabe habe ich dann Dateiname, Zeilennummer und die Positionen. Das funktioniert auch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import os path='/home/user/files/' for filename in os.listdir(path): with open(path + filename, "r") as f: searchlines = f.readlines() linecount = 0 for line in searchlines: linecount = linecount + 1 location = -1 first_run = "yes" positions = "" while True: location = line.find("56", location + 1) if location == -1: break else: if first_run == "yes": positions = str(filename) + str(" - ") + str(linecount) + str(" - ") + str(location) first_run = "no" else: positions = str(positions) + str(" | ") + str(location) if positions != "": print (positions) |
Inhalt einer solcher Datei ist:
Sep 07 12:00:29.323894 rule 5/(match) block in on em0: 11.22.33.44.55555 > 11.22.33.44.55555: S 1351977941:1351977941(0) win 43442 Sep 07 12:00:51.047400 rule 5/(match) block in on em0: 11.22.33.44.55555 > 11.22.33.44.55555: S 3224879997:3224879997(0) win 32233 <mss 1460,nop,wscale 0,nop,nop,sackOK> (DF) ...
Da ca. 1000 Dateien a 2.000 Zeilen durchsucht werden sollen, steht hier die Frage nach der Effektivität im Raum ... gibt es Python effektiver Mittel zur Durchsuchen und Auswertung von Dateien???
Für Verbesserung bzw. Vereinfachungen in meinem Quellcode bin ich selbstverständlich auch dankbar. 😉