sutterkane2
Goto Top

Powershell- Den Gesamtinhalt einer Datei mit dem Zeileninhalt einer zweiten Datei als Suchbegriff durchsuchen...

Hallo.

Ich möchte den Inhalt einer Datei zeilenweise auslesen und prüfen ob der Inhalt der Zeile irgendwo in einer zweiten Datei vorhanden ist. Abweichungen sollen ebenfalls ausgegeben werden.

Datei 1:

Julius.Caesar
Jennifer.Lopez
Jennifer.Williams
Jennifer.Caprice
Jennifer.Hindukusch
jens.jensen


Datei 2:

Jan.Jansen
Bernd.Berndsen
Walter.Ulbricht
Gio.Otto
Julius.Caesar
Frank.Furter


Wie bringe ich die Powershell dazu Datei 2 so mit Datei 1 zu vergleichen, das Julius.Caesar gefunden wird bzw. ausgegeben wird welche Werte aus Datei1 nicht in Datei2 vorhanden sind ?


Danke+Gruß,
SK

Content-Key: 188381

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: bastla
bastla 20.07.2012 aktualisiert um 16:37:07 Uhr
Goto Top
Hallu SutterKane2 und willkommen im Forum!

Wenn auch Batch eine Option wäre, einfach
@echo off & setlocal
echo Enthalten:
findstr /g:Datei1.txt Datei2.txt
echo\
echo Nicht enthalten:
findstr /vg:Datei1.txt Datei2.txt
Grüße
bastla
Mitglied: SutterKane2
SutterKane2 24.07.2012 um 11:12:11 Uhr
Goto Top
Hallo + Danke für die Unterstützung.

Leider gibt mir die Batchdatei für enthalten den Wert "0" zurück und unter "nicht enthalten" werden alle Einträge in der Datei2 angezeigt.


Wird hier evtl. auch zeilenweise verglichen ?

Gibt es denn kein Powershell Ansatz ?

Gruß,
SK2
Mitglied: bastla
bastla 24.07.2012 um 11:48:28 Uhr
Goto Top
Hallo SutterKane2!
Leider gibt mir die Batchdatei für enthalten den Wert "0" zurück und unter "nicht enthalten" werden alle Einträge in der Datei2 angezeigt.
Bei meinem Test sieht das so aus:
D:>type Datei1.txt
Julius.Caesar
Jennifer.Lopez
Jennifer.Williams
Jennifer.Caprice
Jennifer.Hindukusch
jens.jensen

D:>type Datei2.txt
Jan.Jansen
Bernd.Berndsen
Walter.Ulbricht
Gio.Otto
Julius.Caesar
Frank.Furter

D:>type Vergleichen.cmd
@echo off & setlocal
echo Enthalten:
findstr /g:Datei1.txt Datei2.txt
echo\
echo Nicht enthalten:
findstr /vg:Datei1.txt Datei2.txt

D:>vergleichen
Enthalten:
Julius.Caesar

Nicht enthalten:
Jan.Jansen
Bernd.Berndsen
Walter.Ulbricht
Gio.Otto
Frank.Furter
Wird hier evtl. auch zeilenweise verglichen ?
Verglichen wird für jede Zeile, ob eine der Zeilen aus der anderen Datei enthalten ist ...
Gibt es denn kein Powershell Ansatz ?
Den wird es sicher geben - ich kann ihn Dir aber leider nicht bieten ...

Grüße
bastla
Mitglied: SutterKane2
SutterKane2 25.07.2012 um 09:55:36 Uhr
Goto Top
OK, so langsam ahne ich wo der Hase im Pfeffer liegt.

Datei 1 sieht nun so aus:

Julius.Caesar
Jennifer.Lopez
Jennifer.Williams
Jennifer.Caprice
Jennifer.Hindukusch
jens.jensen
Abawa, Abdulla

Datei 2 ist gleich geblieben:

Jan.Jansen
Bernd.Berndsen
Walter.Ulbricht
Gio.Otto
Julius.Caesar
Frank.Furter


Das Ergebnis der Batch-Datei ist:

Enthalten:
Julius.Caesar

Nicht enthalten:
Jan.Jansen
Bernd.Berndsen
Walter.Ulbricht
Gio.Otto
Frank.Furter

Der letzte Wert (Abawa, Abdulla) wird also bei "Nicht enthalten" nicht ausgegeben.

Die Frage ist : Warum ?


Gruß,

SK2
Mitglied: bastla
bastla 25.07.2012 um 12:19:35 Uhr
Goto Top
Hallo SutterKane2!
Die Frage ist : Warum ?
Da ja vor langer Zeit einmal die Fragestellung
welche Werte aus Datei1 nicht in Datei2 vorhanden sind
lautetet, wäre eigentlich von Anfang an
findstr /vg:Datei2.txt Datei1.txt
richtig gewesen (haben wir offensichtlich beide übersehen face-sad) ...

Grüße
bastla