View Full Version : aiuto con grep e sed in uno script
un saluto a tutti.
avrei bisogno di un aiutino per creare uno script.
partenza: un file con una lista di ip.
risultato: lista ip con a fianco regione e città.
col comando
lynx -dump http://whatismyipaddress.com/ip/xxxxxx | grep City
ottengo
City: Rome
1. che comando per ottenere le 3 righe così?
Country: Italy it flag
State/Region: Lazio
City: Rome
2. come ottenere il risultato così da un file con tanti ip?
xxx.xxx.xxx.xxx; italy; lazio; roma
xxx.xxx.xxx.xxx; italy; piemonte; torino
xxx.xxx.xxx.xxx; italy; lombardia; milano
grazie mille!
ps se conoscete un altro sito più veloce, suggerite pure...
se ti puo aiutare:
con
lynx -dump http://whatismyipaddress.com/ip/151.49.38.55 | grep -E 'City|State|Country'
filtri le 3 righe
se ti puo aiutare:
con
lynx -dump http://whatismyipaddress.com/ip/151.49.38.55 | grep -E 'City|State|Country'
filtri le 3 righe
ottimo aiuto!! grazie!
mi hai velocizzato il lavoro OK!
se poi qualcuno sa come fare il resto, ancora meglio. :)
per ora ho questo:
echo "inserisci ip: "
read ip
lynx -dump http://whatismyipaddress.com/ip/$ip | grep -E 'City|State|Country'
metto l'ip, mi da il risultato ed esce.
mi piacerebbe che rimanesse dentro, mi desse le informazioni e tornasse su a chiedermi un nuovo ip, finché non gli scrivo "fine".
edit:
per ora ho risolto con un poco elegante:
ip=1
while [ $ip != "fine" ];
do
echo "inserisci ip:"
read ip
if [ $ip != "fine" ];
then
lynx -dump http://whatismyipaddress.com/ip/$ip | grep -E 'City|State|Country'
fi
done
eclissi83
27-04-2014, 12:01
per rispondere all'esigenza iniziale, mentre aspetto che si cuocia la pasta ho buttato giu' questo scriptino basilare:
#!/bin/bash
# Variabili - inserire i file di input per gli ip e l'output
IP_LIST=listaip.txt
OUTPUT=risultato.txt
# Fine Variabili
# Codice
for IP in `cat $IP_LIST`; do
echo $IP: `lynx -dump http://whatismyipaddress.com/ip/$IP | egrep '(City|State|Country)' | cut -d : -f 2 | sed s/$/\;\ / | sed 's/^[ \t]*//;s/[ \t]*$//' | tr -d '\n'` >> $OUTPUT;
done
spero ti serva.
ciao
per rispondere all'esigenza iniziale, mentre aspetto che si cuocia la pasta ho buttato giu' questo scriptino basilare:
#!/bin/bash
# Variabili - inserire i file di input per gli ip e l'output
IP_LIST=listaip.txt
OUTPUT=risultato.txt
# Fine Variabili
# Codice
for IP in `cat $IP_LIST`; do
echo $IP: `lynx -dump http://whatismyipaddress.com/ip/$IP | egrep '(City|State|Country)' | cut -d : -f 2 | sed s/$/\;\ / | sed 's/^[ \t]*//;s/[ \t]*$//' | tr -d '\n'` >> $OUTPUT;
done
spero ti serva.
ciao
ok, quasi perfetto, grazie!!! :)
per ogni ip ottengo questo:
77.231.161.137: Spain es flag;Catalonia;Barcelona;
per la perfezione mi servirebbe questo
77.231.161.137;Spain;Catalonia;Barcelona
la cosa principale è il ; al posto dei : per poterlo importare su excel.
il resto sono dettagli, non sono necessari...
edit: anzi, è perfetto così!!!
uso il : come separatore e tutto il resto in un'unica cella! ;)
eclissi83
27-04-2014, 19:36
ok, quasi perfetto, grazie!!! :)
prego!
per ogni ip ottengo questo:
77.231.161.137: Spain es flag;Catalonia;Barcelona;
per la perfezione mi servirebbe questo
77.231.161.137;Spain;Catalonia;Barcelona
la cosa principale è il ; al posto dei : per poterlo importare su excel.
il resto sono dettagli, non sono necessari...
per il ; dopo l'IP puoi cambiare la echo nel ciclo for...
per quanto riguarda il flag, la vedo piu' difficile...
prego!
per il ; dopo l'IP puoi cambiare la echo nel ciclo for...
per quanto riguarda il flag, la vedo piu' difficile...
ah, trovato!! non ci avevo fatto caso, avevo provato a sostituire quello che c'era dopo. :fagiano:
ovviamente non funzionava e mi son detto "non toccare niente!!!". :D
cmq va benissimo così, grazie 1000!!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.