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

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

Printed on: April 19, 2024 at 19:04 o'clock

Member: StefanKittel
StefanKittel Mar 12, 2011 at 10:37:10 (UTC)
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
Member: bastla
bastla Mar 12, 2011 at 12:39:06 (UTC)
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
Member: TsukiSan
TsukiSan Mar 12, 2011, updated at Oct 18, 2012 at 16:46:09 (UTC)
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]
Member: bastla
bastla Mar 12, 2011 at 13:28:43 (UTC)
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]
Member: Biber
Biber Mar 12, 2011 at 17:24:52 (UTC)
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]
Member: BlackFire
BlackFire Mar 12, 2011 at 18:20:01 (UTC)
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
Member: bastla
bastla Mar 12, 2011 at 18:38:55 (UTC)
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
Member: BlackFire
BlackFire Mar 12, 2011 at 19:11:37 (UTC)
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
Member: bastla
bastla Mar 12, 2011 at 19:21:07 (UTC)
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
Member: BlackFire
BlackFire Mar 12, 2011 at 19:27:25 (UTC)
Goto Top
Abend bastla,

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


Gruss

BlackFire
Member: TsukiSan
TsukiSan Mar 13, 2011 at 13:24:29 (UTC)
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]