Doppelte IP Adressen herausfiltern
Ich habe ein TXT-File mit folgendem Muster:
Bert - 192.168.0.1
Abert - 168.64.6.484
Poopd - 648.215.49.41
la - 645.845.285.1
Bla - 584.456.6.57
Blebbel - 456.678.64.257
idn - 357.549.25.1
klasfglj - 349.64.6.468
meivr - 46.359.46.168
ksdje - 135.484.0.1
asie - 168.64.6.484
nasdff - 648.215.49.41
Als Ziel bräuchte ich ein File, dass nur die Zeilen enthält, deren IP-Adressen mehrfach vorkommen:
nasdff - 648.215.49.41
Poopd - 648.215.49.41
---
Bert - 192.168.0.1
Abert - 168.64.6.484
la - 645.845.285.1
Bla - 584.456.6.57
Blebbel - 456.678.64.257
idn - 357.549.25.1
klasfglj - 349.64.6.468
meivr - 46.359.46.168
ksdje - 135.484.0.1
asie - 168.64.6.484
Ich beiße mir daran gerade die Zähne aus. - Geschafft hätte ich es bereits, die Datei zu bereinigen, dass die doppelten Einträge rausfallen. Jetzt könne ich zwar die beiden Dateien vergleichen - aber es geht doch sicherlich optimaler? - Am optimalsten wäre eine Trennung (---) zwischen den doppelten Einträgen.
Für einen Tipp wäre ich euch sehr dankbar.
Bert - 192.168.0.1
Abert - 168.64.6.484
Poopd - 648.215.49.41
la - 645.845.285.1
Bla - 584.456.6.57
Blebbel - 456.678.64.257
idn - 357.549.25.1
klasfglj - 349.64.6.468
meivr - 46.359.46.168
ksdje - 135.484.0.1
asie - 168.64.6.484
nasdff - 648.215.49.41
Als Ziel bräuchte ich ein File, dass nur die Zeilen enthält, deren IP-Adressen mehrfach vorkommen:
nasdff - 648.215.49.41
Poopd - 648.215.49.41
---
Bert - 192.168.0.1
Abert - 168.64.6.484
la - 645.845.285.1
Bla - 584.456.6.57
Blebbel - 456.678.64.257
idn - 357.549.25.1
klasfglj - 349.64.6.468
meivr - 46.359.46.168
ksdje - 135.484.0.1
asie - 168.64.6.484
Ich beiße mir daran gerade die Zähne aus. - Geschafft hätte ich es bereits, die Datei zu bereinigen, dass die doppelten Einträge rausfallen. Jetzt könne ich zwar die beiden Dateien vergleichen - aber es geht doch sicherlich optimaler? - Am optimalsten wäre eine Trennung (---) zwischen den doppelten Einträgen.
Für einen Tipp wäre ich euch sehr dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 162527
Url: https://administrator.de/forum/doppelte-ip-adressen-herausfiltern-162527.html
Ausgedruckt am: 22.04.2025 um 21:04 Uhr
11 Kommentare
Neuester Kommentar
Hallo BlackFire und willkommen im Forum (ja, die meisten hier nehmen sich Zeit für eine kurze Begrüßung)!
Wenn Du bereits eine Liste mit den Unikaten hast, würde im Prinzip schon einmal
genügen, um die "restlichen" Zeilen zu erhalten.
Etwas geordneter (und mit den gewünschten Trennlinien), allerdings langsamer, ließe sich das auch etwa so machen:
Grüße
bastla
P.S.:

Wenn Du bereits eine Liste mit den Unikaten hast, würde im Prinzip schon einmal
findstr /v /g:"Unikate.txt" "Alle.txt"
Etwas geordneter (und mit den gewünschten Trennlinien), allerdings langsamer, ließe sich das auch etwa so machen:
@echo off & setlocal
set "Liste=Alle.txt"
set "Doppelte=Doppelte.txt"
set "Trennen="
type nul>"%Doppelte%"
for /f "usebackq tokens=2 delims=-" %%i in ("%Liste%") do (
for /f %%a in ('find /c "%%i"^<"%Liste%"') do (
if %%a gtr 1 findstr /c:"%%i" "%Doppelte%">nul || (
if defined Trennen echo ---
findstr /c:"%%i" "%Liste%"
set Trennen=True
)>>"%Doppelte%"
)
)
bastla
P.S.:
... - aber es geht doch sicherlich optimaler? - Am optimalsten wäre eine Trennung (---) zwischen den doppelten Einträgen.
Eigentlich ist nur Chuck Norris das Steigern von "optimal" erlaubt ...
...oder - wenn's VBS sein darf - hier Bastlas Script direkt anwenden.
er hat doch auch Wochenende!!!
Gruss
Tsuki
[Edit]
da isser ja schon
[/Edit]
er hat doch auch Wochenende!!!
Gruss
Tsuki
[Edit]
da isser ja schon
[/Edit]
[OT] Moin bastla,
Aber Chuck kann es nicht sein - der hat doch nur Antworten und keine Fragen
Grüße
Biber
[/OT]
Aber Chuck kann es nicht sein - der hat doch nur Antworten und keine Fragen
Grüße
Biber
[/OT]
Hallo BlackFire!
Dann etwa so:
Grüße
bastla
Dann etwa so:
@echo off & setlocal
set "Liste=Alle.txt"
set "Doppelte=%Doppelte.txt"
set "Trennen="
type nul>"%Doppelte%"
for /f "usebackq tokens=4-5 delims=. " %%i in ("%Liste%") do (
for /f %%a in ('find /c "%%i.%%j."^<"%Liste%"') do (
if %%a gtr 1 findstr /c:" %%i\.%%j\." "%Doppelte%">nul || (
if defined Trennen echo ---
findstr /c:" %%i\.%%j\." "%Liste%"
set Trennen=True
)>>"%Doppelte%"
)
)
bastla