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-Key: 529810

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

Printed on: April 28, 2024 at 14:04 o'clock

Mitglied: 142232
Solution 142232 Dec 25, 2019 updated at 15:59:31 (UTC)
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 ...
Member: Frank2017
Frank2017 Dec 25, 2019 at 16:03:35 (UTC)
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?
Mitglied: 142232
Solution 142232 Dec 25, 2019 updated at 16:26:04 (UTC)
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
Member: Frank2017
Frank2017 Dec 25, 2019 at 23:17:54 (UTC)
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.