Powershell - Doppelte Einträge einer Textdatei entfernen, BEIDE Einträge
Hallo
Ich habe eine Textdatei wo z.B. folgendes steht:
Mensch
Vogel
Mensch
Fisch
Tier
Jetzt möchte ich, dass der Eintrag Mensch entfernt wird, weil dieser doppelt ist. Und zwar komplett, sodass nur noch
Vogel
Fisch
Tier
steht und der Eintrag Mensch komplett weg ist.
Bitte so einfach wie möglich mit Powershell
Ich habe eine Textdatei wo z.B. folgendes steht:
Mensch
Vogel
Mensch
Fisch
Tier
Jetzt möchte ich, dass der Eintrag Mensch entfernt wird, weil dieser doppelt ist. Und zwar komplett, sodass nur noch
Vogel
Fisch
Tier
steht und der Eintrag Mensch komplett weg ist.
Bitte so einfach wie möglich mit Powershell
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 283585
Url: https://administrator.de/forum/powershell-doppelte-eintraege-einer-textdatei-entfernen-beide-eintraege-283585.html
Ausgedruckt am: 27.12.2024 um 01:12 Uhr
5 Kommentare
Neuester Kommentar
Moin,
machst du so
Gruß jodel32
machst du so
$file = 'C:\data.txt'
# Datei einlesen
$content = gc $file
# Vergleich zwischen Original und ausgefilterten Dubletten erstellen
$exclude = compare $content ($content | select -Unique) -passthru
# doppelte Einträge komplett ausfiltern und wieder in Original-Datei zurückschreiben (Achtung min. PS 3.0 benötigt)
$content | ?{$_ -notin $exclude} | out-file $file
Gruß jodel32
Jedoch funktioniert es nicht wenn Lerrzeilen vorhanden sind
Geht hier auch damit einwandfrei ... Da musst du schon näher erläutern was dir vorschwebt oder du meinst ...Denn "funktioniert nicht" ist keine Fehlermeldung in einem Admin-Forum, das sollte dir klar sein...
Zitat von @Tastuser:
Ja tut mir leid!
Also Wenn hinter "Mensch" ein Lerzeichen ist wie hier: "Mensch "
Dann wird dieser Eintrag als unterschiedlich erkannt und nicht gelöscht.
Ach so das muss man natürlich wissen damit man es berücksichtigen kann, ist aber kein Problem, einfach Zeile 3 so modifizieren:Ja tut mir leid!
Also Wenn hinter "Mensch" ein Lerzeichen ist wie hier: "Mensch "
Dann wird dieser Eintrag als unterschiedlich erkannt und nicht gelöscht.
$content = (gc $file) | %{$_.Trim()}