Textfile filtern in ein neues File

  • Hallo,


    mein Ziel: Ich möchte mehrere Logfiles durchsuchen ob diverse Email Adressen vorkommen.

    In Summe sind das ca. 70.000 Email Adressen. Da die Logfiles zwischen 40 MB und 5000 MB groß sind dauert das alles ewig. Auch wenn ich die Logfiles in ein Array lade.


    Da ich nur wissen will ob die Email Adressen vorkommen und mehr nicht dachte ich ich Filter die Logfile in ein neues Textfile wo nur Emailadressen drinnen stehe und mehr nicht. Damit sollte die Endgröße von bis zu 5 GB ziemlich kleiner werden.


    Ich habe nun versucht mit StringRegExp was zu basteln und komme nicht weiter.

    Vor und nach der Emailadresse kommt ein [TAB]. Das heisst alles vor und nach einem @ bist zum [TAB] ein einen neuen File wäre geil.


    Hat wer eine Idee?


    Danke

  • In Summe sind das ca. 70.000 Email Adressen.

    Hört sich an, als benötigst du es für kommerzielle Zwecke, also könntest du es in der JobBörse (mit Gegenleistung) posten, kleiner Auszug aus Log-File (Adressen bitte anoymisieren) nicht vergessen.
    Oder du nimmst dir die Zeit und lernst es anhand von z.B.:
    http://www.bug-fix.info/PathCheck.htm
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (11. Juni 2010 um 14:24)

  • Probier mal das

    Spoiler anzeigen
    [autoit]

    $sFile = FileOpenDialog("Öffnen","","All (*.*)")
    FileWrite(FileSaveDialog("Speichern","","All (*,*)",Default,StringTrimRight($sFile,4) & "_bearbeitet"&StringRight($sFile,4)),StringRegExpReplace(FileRead($sFile),'(?m)^.*\t(.+?@.+?)\t.*$',"\1"& @CRLF))

    [/autoit]