Comportamento estranho ao classificar endereços IP. (sort -nu)

0

Eu apenas tentei |sort -nu (numeric & unique) uma lista de ~ 30 ou mais endereços IP e notei que, além de eliminar linhas duplicadas, ele trata linhas semelhantes (ou seja, endereços com os mesmos dois ou três primeiros octetos ) como idêntico; e cortá-los também.

O que há com isso?

Para ilustrar; você pode simular este cenário, da seguinte maneira:

stdin

for ip in 192.168.1.{1..5};
do
    echo "$ip";
done > ip.log

for ip in 10.1.1.{1..5};
do
    echo "$ip";
done >> ip.log

cat 'ip.log'

stdout

192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
10.1.1.1
10.1.1.2
10.1.1.3
10.1.1.4
10.1.1.5

stdin

sort -nu 'ip.log'

stdout

10.1.1.1
192.168.1.1
    
por tjt263 12.06.2016 / 00:29

1 resposta

1

Diga sort para classificar números de versão:

$ sort -Vu 'ip.log'
10.1.1.1
10.1.1.2
10.1.1.3
10.1.1.4
10.1.1.5
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5

Como alternativa, peça para classificar numericamente em todos os quatro campos:

$ sort -nu -t. -k1 -k2 -k3 -k4  'ip.log'
10.1.1.1
10.1.1.2
10.1.1.3
10.1.1.4
10.1.1.5
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
    
por 12.06.2016 / 00:54