none
Textdatei auf doppelte Einträge prüfen RRS feed

  • Frage

  • Hallo,

    ich bräuchte ein Powershell-Script, dass eine Textdatei mit E-Mail-Adressen auf doppelte Einträge überpüft und, falls welche vorhanden sind, diese löscht.

    Wie ist da vorzugehen?

    Montag, 4. März 2013 13:19

Antworten

  • Genau so siehts aus, aber du musst keine kopie der Datei anlegen, reicht aus das du den Inhalt der Datei in eine Variable lädst.

    $temp = get-content 'textdatei.txt' | sort -unique 
    $temp | out-file '.\textdatei.txt'

    oder als Einzeiler

    $(get-content 'textdatei.txt' | sort -unique) | out-file '.\textdatei.txt'


    Gruß



    • Als Antwort markiert Orothred Dienstag, 5. März 2013 10:26
    • Bearbeitet Kamil Kosek Dienstag, 5. März 2013 10:26
    Dienstag, 5. März 2013 10:24

Alle Antworten

  • Hallo,

    versuche es mit

    get-content 'textdatei.txt' | sort -unique | out-file '.\neue textdatei.txt'

    • Als Antwort vorgeschlagen Kamil Kosek Montag, 4. März 2013 13:42
    Montag, 4. März 2013 13:35
  • Also danach ist die Datei bei mir komplett leer....
    Montag, 4. März 2013 14:33
  • Hallo,

    hast Du ein Beispiel der Datei? Ein paar Zeilen würden genügen...


    -Raimund

    Montag, 4. März 2013 15:52
  • Ist einfach eine Liste mit E-Mail-Adressen, eine pro Zeile
    Dienstag, 5. März 2013 06:55
  • Dann müßte die bereits vorgeschlagene Lösung genau die richtige sein.

    -Raimund

    Dienstag, 5. März 2013 09:39
  • Wie schon gesagt, wenn ich das Kommando ausführe, ist die neue Datei danach leer
    Dienstag, 5. März 2013 09:44
  • Ergänzung: Doch, es funktioniert, aber nur, wenn ich wirklich eine neue Datei mit anderem Namen als out-file nehme. Wenn ich die gleiche Datei sozusagen überschreiben will, dann ist sie danach leer. Möchte allerdings eben genau das haben, es soll wieder der gleiche Dateiname sein wie vorher
    Dienstag, 5. März 2013 09:48
  • Aber du ersetzt schon 'textdatei.txt' durch deine Datei welche die Email Adressen beinhaltet?

    Probier mal folgendes und poste das ergebnis bitte:

    "aa@bb.cc","bb@bb.cc","cc@bb.cc","aa@bb.cc" | sort -unique


    Dienstag, 5. März 2013 09:51
  • Ja, das funktioniert. Wie gesagt, es klappt nur nicht, wenn die Eingabedatei und out-file gleich sind. Ich schätze mal, ich muss mir eine temporäre Kopie der Datei anlegen und anschließend meine Originaldatei mit dieser ersetzen.
    Dienstag, 5. März 2013 10:07
  • Genau so siehts aus, aber du musst keine kopie der Datei anlegen, reicht aus das du den Inhalt der Datei in eine Variable lädst.

    $temp = get-content 'textdatei.txt' | sort -unique 
    $temp | out-file '.\textdatei.txt'

    oder als Einzeiler

    $(get-content 'textdatei.txt' | sort -unique) | out-file '.\textdatei.txt'


    Gruß



    • Als Antwort markiert Orothred Dienstag, 5. März 2013 10:26
    • Bearbeitet Kamil Kosek Dienstag, 5. März 2013 10:26
    Dienstag, 5. März 2013 10:24