frank2017
Goto Top

Powershell den Inhalt von zwei txt Dateien vergleichen

Hallo!

Möchte mit Powershell den Inhalt von zwei txt Dateien vergleichen.

1. txt Datei heißt Inhalt1.txt und enthält:

Zeile1: Raum-A;000;111;222;333;444;555;666;xxx;yyy
Zeile2: Zimmer-C;000;333;666;999;555;xxx
Zeile3: Wohnung-F;000;111;222;888


2. txt Datei heißt Inhalt2.txt und enthält:

Zeile1: Raum-A
Zeile2: Wohnung-F


Nun möchte ich das der Inhalt1.txt mit dem Inhalt2.txt überprüft wird und zwar so:

Das wenn in Inhalt2.txt wie im Beispiel "Zimmer-C" fehlt, so soll die komplette Zeile in Inhalt1.txt gelöscht werden.


Das Ergebnis von Inhalt1.txt sollte dann so aussehen:

Zeile1: Raum-A;000;111;222;333;444;555;666;xxx;yyy
Zeile2: Wohnung-F;000;111;222;888


Ich hoffe es gibt eine Lösung dafür.

Danke schön.

Gruß Frank

Content-ID: 529810

Url: https://administrator.de/forum/powershell-den-inhalt-von-zwei-txt-dateien-vergleichen-529810.html

Ausgedruckt am: 08.04.2025 um 06:04 Uhr

142232
Lösung 142232 25.12.2019 aktualisiert um 16:59:31 Uhr
Goto Top
Nichts leichter als das
$inhalt1 = Get-Content inhalt1.txt
$inhalt2 = Get-Content inhalt2.txt
$inhalt1 | ?{$_.split(';') -in $inhalt2} | set-content inhalt3.txt  
https://tio.run/##bc7NCoJAFIbh/VzFLARrMaLjD8ohMoTatwmKCBdTDoyj6EhKdu2WZk ...
oder auch so
https://tio.run/##fY9dS8MwFIbv8ysORegGZjTdBxtBmGwTd@VwoOBdbM9sNE1qms4W/O ...
Frank2017
Frank2017 25.12.2019 um 17:03:35 Uhr
Goto Top
Danke, klappt soweit prima.

habe den code genommen:

$inhalt1 = Import-CSV inhalt1.txt -Delimiter ";" -Header (1..10)
$inhalt2 = Import-CSV inhalt2.txt -Delimiter ";" -Header 1

(Compare-Object $inhalt1 $inhalt2 -Property "1" -IncludeEqual -ExcludeDifferent -Passthru | select -Exclude SideIndicator | convertto-csv -delimiter ";" | select -skip 1) -replace '"',''

Nur am ende jeder Zeile stehen noch zwei Gleichheitszeichen "=="

Kann man die noch entfernen?
142232
Lösung 142232 25.12.2019 aktualisiert um 17:26:04 Uhr
Goto Top
Nur am ende jeder Zeile stehen noch zwei Gleichheitszeichen "=="
Nein, die werden durch das select -ExcludeProperty SideIndicator im Code ja schon entfernt, siehe im Link das Ergebnis!
https://tio.run/##fY9dS8MwFIbv8ysORegGZjTdBxtBmGwTd6PDiYJ3sT2z0bSpaTpb8L ...

Ansonsten wenn es keine valide CSV ist, nehme Variante 1
Frank2017
Frank2017 26.12.2019 um 00:17:54 Uhr
Goto Top
Vielen Dank für deine Hilfe.

Habe die Variante 1 mit dem Zusatz, "set-content inhalt3.txt" genommen.

Funktioniert tadellos. Perfekt.

Nochmals danke und noch schöne Weihnachten.