Sida 1 av 1

Filtrera ut en ip adress? [LÖST]

Postat: 27 aug 2009, 11:53
av magnus-s
Hej jag har en fil som kan se ut så här.

Kod: Markera allt

document.write("11.222.33.44");
Jag försöker filtrerra ut all text utom IP numret så det enda som blir ska bli kvar är

Kod: Markera allt

11.222.33.44
Hur gör jag det?

Re: Filtrera ut en ip adress?

Postat: 27 aug 2009, 12:09
av mcNisse

Kod: Markera allt

echo 'document.write("11.222.33.4")' | sed -n 's/[^0-9]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p'

Re: Filtrera ut en ip adress?

Postat: 27 aug 2009, 12:27
av magnus-s
Wohooo tack det fungerade :)
Du har ingen bra guide för hur sed fungerar?

Re: Filtrera ut en ip adress?

Postat: 27 aug 2009, 12:39
av mcNisse
Nej, jag har ingen bra guide.

Re: Filtrera ut en ip adress?

Postat: 27 aug 2009, 12:39
av KiviE

Re: Filtrera ut en ip adress?

Postat: 27 aug 2009, 12:40
av Konservburk
mcNisse skrev:

Kod: Markera allt

echo 'document.write("11.222.33.4")' | sed -n 's/[^0-9]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p'
Det där fungerar inte om du har flera ip-adresser på samma rad, eller om du har andra siffror någonstans innan ip-adressen. Här är en något mer robust variant:

Kod: Markera allt

ip='\(\([1-9]\?\|1[0-9]\|2[0-4]\)[0-9]\|25[0-5]\)'
ip="$ip.$ip.$ip.$ip"
echo 'document.write("11.222.33.44")' | sed "s/$ip/\n&\n/g" | sed -n "/^$ip$/p"

Re: Filtrera ut en ip adress? [LÖST]

Postat: 27 aug 2009, 15:59
av magnus-s
tack ska kolla in länken när jag kommer hem...