tastuser
Goto Top

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 face-smile

Content-Key: 283585

Url: https://administrator.de/contentid/283585

Printed on: April 26, 2024 at 04:04 o'clock

Mitglied: 114757
Solution 114757 Sep 22, 2015 updated at 14:49:47 (UTC)
Goto Top
Moin,
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
Member: Tastuser
Tastuser Sep 22, 2015 at 14:28:51 (UTC)
Goto Top
Danke!

Jedoch funktioniert es nicht wenn Lerrzeilen vorhanden sind face-confused
Mitglied: 114757
114757 Sep 22, 2015 updated at 14:41:58 (UTC)
Goto Top
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...
Member: Tastuser
Tastuser Sep 22, 2015 at 14:49:28 (UTC)
Goto Top
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.
Mitglied: 114757
Solution 114757 Sep 22, 2015 updated at 15:03:30 (UTC)
Goto Top
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:
$content = (gc $file) | %{$_.Trim()}