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