blackfire
Goto Top

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.

Content-ID: 162527

Url: https://administrator.de/forum/doppelte-ip-adressen-herausfiltern-162527.html

Ausgedruckt am: 22.04.2025 um 21:04 Uhr

StefanKittel
StefanKittel 12.03.2011 um 11:37:10 Uhr
Goto Top
Moin,

wie hast/willst Du das denn machen?
Per Batch? Dann bitte bastla fragen.

Mit Excel oder Access ist es einfach(er).

Stefan
bastla
bastla 12.03.2011 um 13:39:06 Uhr
Goto Top
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
findstr /v /g:"Unikate.txt" "Alle.txt"
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:
@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%"  
    )
)
Grüße
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 ... face-wink
TsukiSan
TsukiSan 12.03.2011, aktualisiert am 18.10.2012 um 18:46:09 Uhr
Goto Top
...oder - wenn's VBS sein darf - hier Bastlas Script direkt anwenden.
er hat doch auch Wochenende!!!


Gruss
Tsuki

[Edit]
da isser ja schon
[/Edit]
bastla
bastla 12.03.2011 um 14:28:43 Uhr
Goto Top
[OT]
Hallo Tsuki!

Schön, dass Du Dir über mich Gedanken machen kannst face-smile - geht's Dir demnach gut?

Grüße
bastla
[/OT]
Biber
Biber 12.03.2011 um 18:24:52 Uhr
Goto Top
[OT] Moin bastla,
Zitat von @bastla:
P.S.:
Eigentlich ist nur Chuck Norris das Steigern von "optimal" erlaubt ... face-wink
Aber Chuck kann es nicht sein - der hat doch nur Antworten und keine Fragen face-wink

Grüße
Biber
[/OT]
BlackFire
BlackFire 12.03.2011 um 19:20:01 Uhr
Goto Top
Guten Abend,
danke für die freundliche Begrüßung im Forum. Das Problem was dabei noch ist, dass er nach den Namen anscheinend geht.

Orginaler Auszug: (Namen und IP-Adressen von mir geändert.)

Name: gvdhsthg IP: 83.135.105.193 (15-2-2011) 20:14:20
Name: hthtghtt IP: 87.147.8.33 (15-2-2011) 20:14:45
Name: ghijt IP: 62.47.246.92 (5-3-2011) 19:45:18
Name: hhj IP: 84.141.133.137 (5-3-2011) 19:47:58
Name: gfgfgr IP: 84.156.252.7 (5-3-2011) 19:50:5
Name: rfüh IP: 91.51.201.228 (5-3-2011) 19:50:10
Name: test3 IP: 62.47.246.92 (5-3-2011) 19:50:25
Name: okok IP: 84.141.133.137 (5-3-2011) 19:52:19
Name: lalala IP: 87.142.55.12 (5-3-2011) 19:52:24
Name: bliebelu IP: 93.232.40.239 (5-3-2011) 19:52:44
Name: blablub IP: 190.201.229.199 (5-3-2011) 19:54:1
Name: test6 IP: 87.142.52.27 (5-3-2011) 19:54:3
Name: test3 IP: 84.141.133.137 (5-3-2011) 19:55:33
Name: test5 IP: 93.215.154.128 (5-3-2011) 19:55:46

Danke für eure große Mühe
bastla
bastla 12.03.2011 um 19:38:55 Uhr
Goto Top
Hallo BlackFire!

So ganz kann ich Dir jetzt nicht folgen ...

Grüße
bastla

P.S.: Ich hoffe, Du bist nicht enttäuscht, aber: Ich würde das nicht Mühe, und schon gar nicht große, nennen ... face-wink
BlackFire
BlackFire 12.03.2011 um 20:11:37 Uhr
Goto Top
Abend bastla,
beim ersten Beitrag sollte es nur ein Muster sein, wie die Textdatei ungefähr aussieht. face-smile Das Ganze soll dafür dienen, um zu schauen ob sich einer mit der gleichen IP-Adresse einen zweiten Account angelegt hat, um diesen schnellst möglichst sperren zu können. Man sollte dabei auch beachten das sich die IP-Adresse ändern kann, deswegen sollte man nur die ersten zwei stellen vergleichen. (Also 185.25.63.26, soll genauso als gleiches angezeigt werden wie: 185.25.96.36) Ich weiß ich habe es oben nicht gerade sehr gut beschrieben bzw. verkehrt beschrieben. War zu dieser Zeit stark im Stress. Ich bitte dies zu entschuldigen.
Das ist das Problem was ich nicht hinbekomme. Ich hoffe es ist verständliche beschrieben, wenn nicht sagt bitte Bescheid. face-smile
bastla
bastla 12.03.2011 um 20:21:07 Uhr
Goto Top
Hallo BlackFire!

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%"  
    )
)
Grüße
bastla
BlackFire
BlackFire 12.03.2011 um 20:27:25 Uhr
Goto Top
Abend bastla,

das Funktioniert wunderbar.
Vielen Dank für deine Hilfe.


Gruss

BlackFire
TsukiSan
TsukiSan 13.03.2011 um 14:24:29 Uhr
Goto Top
[OT]
Hallo bastla,

es geht immer weiter und weiter face-wink
Ich dachte mir nur, dass du nach der ganzen Woche voll mit Scripterei auch mal ein Päuschen
zu schätzen weißt.
Andererseits liebst du ja das Scripten. face-smile

Einen schönen Sonntag an alle - an dieser Stelle!

Gruss
Tsuki
[/OT]