Pagina 1 di 1

filtrare una lista complessa

Inviato: martedì 26 ottobre 2010, 21:51
da gabo
A partire da un file fatto in questo modo:

192.168.0.99 () Ports
8080/open/tcp//http-proxy?///
192.168.0.19 () Ports
192.168.0.93 () Ports
81/open/tcp//http//Apache httpd/
192.168.0.13 () Ports
80/open/tcp//http//Apache httpd/
8080/open/tcp//http-proxy?///
8081/open/tcp//http//Apache httpd/

(praticamente ci sono degli ip e sotto ci sono delle porte)
vorrei ottenere questo:

192.168.0.99:8080
192.168.0.93:81
192.168.0.13:80
192.168.0.13:8080
192.168.0.13:8081

Il problema è scartare gli host senza porte come il 192.168.0.19 e ottenere gli ip:porta per ogni porta riferita a quell'host

avete qualche idea ho provato con i vari awk -F etc.. ma non riesco a gestire le diverse condizioni in modo ricorsivo...

Re: filtrare una lista complessa

Inviato: mercoledì 27 ottobre 2010, 9:47
da difesaparcosempione
Bhe se maometto non va alle montagna , la montagna ..

Come , con che comandi , hai ottenuto quel file ? Magari si può instervenire a monte ...
Posta il comando che hai utilizzato ..

ciao
:)

Re: filtrare una lista complessa

Inviato: mercoledì 27 ottobre 2010, 10:15
da kiroken_
puoi usare questo script python

Codice: Seleziona tutto

#!/usr/bin/env python

import sys

for line in sys.stdin:
    i = line.find("()")
    if i != -1:
      ip = line[:i].strip()
    elif ip is not None:
      i = line.find("/")
      if i != -1:
	print ip + ":" + line[:i].strip()
      else:
	ip = None
devi passargli quei dati sullo standard input