parsovani IP adresy sed-em

Michal Hajek hajek na nspuh.cz
Čtvrtek Květen 3 09:26:19 CEST 2001


Martin Mačok wrote:
> 
> On Thu, May 03, 2001 at 08:09:50AM +0200, Martin Edlman wrote:
> >       nejsem schopnej rozparsovat IP adresu na slozky, a to pomoci sed-u.
> > Perl ani AWK neni k dispozici.
> >       IP adresu (A.B.C.D) mam v promenny, potrebuji jeji treti cislo (C).
> > Zkousel jsem nasledujici, vzdy mi to vyhodi zpet celou IP adresu.
> >       Prosim o radu, jak to ma byt, protoze uz nevim.
> >
> > DEFGW="10.0.0.1"
> >
> > echo $DEFGW | sed -e 's/[0-9]+\.[0-9]+\.([0-9]+)\.[0-9]+/\1/g'
> > echo $DEFGW | sed -e '^s/[0-9]+\.[0-9]+\.([0-9]+)\.[0-9]+/\1/g'
> > echo $DEFGW | sed -e 's/[0-9]+\.[0-9]+\.([0-9]+)\.[0-9]+.*/\1/g'
> 
> echo $DEFGW | sed 's/^[0-9]\+\.[0-9]\+\.\([0-9]\+\)\.[0-9]\+$/\1/'
> 
> (ono je potreba ty + odeskejpovat, protoze jinak to matchuje normalne
> znak "+", ktery to nenaslo a proto to vypsalo uplne cely retezec.
> 
> echo $DEFGW | sed -n 's/^[0-9]\+\.[0-9]\+\.\([0-9]\+\)\.[0-9]\+$/\1/p'
> 
> Ale delal bych to spis takto:
> 
> echo $DEFGW | cut -f3 -d.
> 

Jo a kdyby nebyl ani ten cut nebo bylo zahodno usetrit proces, tak
treba

IP13=${IP%.*}
IP3=${IP13##*.}
echo $IP3

:-)

MH
-- 
--------------------------------------------------------------
Michal Hajek                   mailto:hajek na nspuh.cz
--------------------------------------------------------------


Další informace o konferenci Linux