-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 | Fala Israel, | dando uma otimizada na idéia do Otávio: | $ sort -nt . -k 1 -k 2 -k 3 -k 4 temp.txt | 10.0.5.2 | 10.0.5.3 | 10.0.5.6 | 10.0.5.10 | 10.0.5.16 | Abração, | Julio
Coisas estranhas acontecendo aqui: [EMAIL PROTECTED]:~$ cat temp.txt 10.0.5.2 10.0.5.3 10.0.5.6 10.0.5.10 10.0.5.16 10.1.2.5 10.2.1.6 10.1.3.1 192.168.1.20 192.168.0.1 192.168.0.53 200.185.6.163 [EMAIL PROTECTED]:~$ sort -nt . -k 1 -k 2 -k 3 -k 4 temp.txt 10.0.5.10 10.0.5.16 10.0.5.2 10.0.5.3 10.0.5.6 10.1.2.5 10.1.3.1 10.2.1.6 192.168.0.1 192.168.0.53 192.168.1.20 200.185.6.163 Da mesma forma que ordenar uma data no formato dd/mm/yyyy nos trará problemas, eu considero ideal trabalhar com IP em seu formato longinteger. Já que os dados vêm do MySQL, podemos fazer: mysql -u root -N -e "SELECT INET_ATON(IP) AS I1, IP AS I2 FROM tabela ORDER BY I1" banco O resultado será algo como +------------+---------------+ | 167773442 | 10.0.5.2 | | 167773443 | 10.0.5.3 | | 167773445 | 10.0.5.5 | | 167773450 | 10.0.5.10 | | 167773456 | 10.0.5.16 | | 167773460 | 10.0.5.20 | | 167773462 | 10.0.5.22 | | 167773470 | 10.0.5.30 | | 3232235521 | 192.168.0.1 | | 3232235608 | 192.168.0.88 | | 3232235775 | 192.168.0.255 | | 3232235876 | 192.168.1.100 | +------------+---------------+ Foge um pouco do conceito shell-script, mas vale pelo didatismo. Para fazer essa transformação em shell, sem utilizar os recursos do MySQL, a formula para se transformar um IP no formato A.B.C.D em Inteiro Longo é A * 256^3 + B * 256^2 + C * 256^1 + D = A * 16777216 + B * 65536 + C * 256 + D Senão vejamos: [EMAIL PROTECTED]:~$ IP=10.0.5.2 ; IFS=. ; set -x $IP ; expr $1 \* 16777216 + $2 \* 65536 + $3 \* 256 + $4 e temos [EMAIL PROTECTED]:~$ 167773442 O sort do Otávio funciona, mas já que eu vou ter que fazer uma interação com o MySQL, prefiro que ele faça o trabalho por mim. - -- Um abraço MrBiTs - [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFHnPG5rDdxWm3R8YYRAoH6AKCP/GECSyt5UMnXvMe3FEzMZbtdBgCfbaae Igzu7k/h5sBd8zGJnLyCWFM= =RWma -----END PGP SIGNATURE-----
