Soubor s IPckama a razeni v shellu
Jan Kasprzak
kas na fi.muni.cz
Čtvrtek Duben 14 21:29:31 CEST 2005
Petr Vojnar wrote:
: mam soubor, kde je na kazdem radku jedna IP adresa a chtel bych ho pomoci
: beznych prostredku (~ sort, sed atd.) zpracovat tak, aby napr. prikaz cat
: soubor-s-ip | ... vypsal serazene IP.
:
: Delal jsem nejake pokusy se sortem a sedem, ale v nejlepsim pripade to
: seradilo jen prvni cast IP. :-( Proste treba 158.194.2.1 je az za
: 158.194.100.1 atd.
No, trik je v prevedeni 158.194.2.1 -> 158.194.002.001 a pak uz
lze tridit lexikograficky. TIMTOWTDI, jedna z moznosti je treba
while IFS=: read ip1 ip2 ip3 ip4
do
ip1=`printf "%03d" $ip1`
ip2=`printf "%03d" $ip2`
ip3=`printf "%03d" $ip3`
ip4=`printf "%03d" $ip4`
echo "$ip1.$ip2.$ip3.$ip4"
done < soubor | sort | sed 's/^0*\([^.])/\1/;s/\.0*\([^.]\)/.\1/g'
(nevyzkouseno, mozna jsou tam nejake drobne preklepy; dulezita je hlavni
myslenka). Nemate-li printf(1), pouzijte totez v Perlu/AWK.
-Yenya
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Czech Linux Homepage: http://www.linux.cz/ |
> Whatever the Java applications and desktop dances may lead to, Unix will <
> still be pushing the packets around for a quite a while. --Rob Pike <
Další informace o konferenci Linux