Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
doppelte IP's aus einer zeile filtern

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
brum
Gast





BeitragVerfasst am: 04. Jun 2008 8:07   Titel: doppelte IP's aus einer zeile filtern

Liebe Freunde des Perl, awk & Co,

gibt es eine Möglichkeit doppelte IP-Adressen aus einem Textdokument zu filtern, welche in einer Zeile geschrieben wurden? (Allow from in apache-config)

Trenner ist Leerzeichen.
Die Bezeichnung treten auf als
Code:

88.88.88.88   88.88.88.*   88.88.88.0/24


Viele Grüße

brum
 

komsomolze



Anmeldungsdatum: 03.03.2006
Beiträge: 429

BeitragVerfasst am: 11. Jun 2008 3:55   Titel:

Ein Suchmuster für eine dezimale IP
Code:
'[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[^ ]+'   sei hier   "A"


Zuerst mal eine Liste der doppelten IP aufstellen:
Code:
cat LOG  |  sed 's@^.* \(A \).* \(A \).*$@\1 \2@'  >  Temp-Datei
# soll aus Zeilen mit mehreren IP eine Zeile mit nur zwei IP machen.
# (Bis auf das letzte "*" sind nach "A" und "*" Leerzeichen im Ausdruck)
Jetzt greppe ich nach genau diesen Zeilen und gebe nur die aus, die doppelt gleich sind:
Code:
cat  Temp-Datei  |  \
egrep "^A A$"  |  awk '$1==$2 {print $1}'  |  sort  |  uniq  >  Liste-Datei
# Funktioniert '$1==$2' bei awk ?
Damit habe ich eine Liste der IP, die doppelt auftauchen.

Diese Liste geht jetzt in eine FOR-Schleife, sequentielle Abarbeitung:
Code:
cd  /dev/shm
cat  LOG  >  IN
for  i  in  $(< Liste-Datei) ;  do
  cat  IN  |  \
  sed  's@^\(.* \)\($i \)\(.* \)\($i \)\(.*\)$@\1\2\3\5@'  >  OUT
  # (Bis auf die letzte Gruppenklammer sind auch hier Leerzeichen im Ausdruck.)
mv  --force  OUT  IN
done
(Hoffentlich ist das RAM-Laufwerk dafür schnell genug)

Ist ein bischen holprig, aber einen regulären Ausdruck mit einem regulären Ausdruck in einem sed-Durchgang abzugleichen?
Und bei HOLD- und Pattern-Space bin ich nicht stabil. Confused
Syntax korrekt? Soll eher eine Idee sein, die Aufgabe mehrstufig zu erledigen, statt in einem sed-Befehl.
(Und Du hast sed, grep und awk dabei Smile )
_________________
mfg komsomolze
 
Benutzer-Profile anzeigen Private Nachricht senden

brum
Gast





BeitragVerfasst am: 11. Jun 2008 14:30   Titel: ip

Vielen Dank für das feine "Hieroglyphen-Netz", kann ich gut gebrauchen und die hunderte allow-Einträge der httpd.conf zu kontrollieren ...

Grüße
brum
 

WellWork



Anmeldungsdatum: 24.08.2008
Beiträge: 1

BeitragVerfasst am: 24. Aug 2008 17:01   Titel:

Hallo!
Ich kenne das ausgezeichnete Programm für Finde doppelte Bilder.
Es heißt Clone Remover.
Ich berate Ihnen, es auszunutzen.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy