Seltsames Verhalten beim Sortieren von IP-Adressen. (sort -nu)

Seltsames Verhalten beim Sortieren von IP-Adressen. (sort -nu)

Ich habe gerade versucht, |sort -nueine Liste mit ungefähr 30 IP-Adressen (numerisch und eindeutig) zu erstellen und habe festgestellt, dass zusätzlich zum Aussortieren doppelter Zeilen auch ähnliche Zeilen (d. h. Adressen mit denselben ersten zwei oder drei Oktetten) als identisch behandelt und ebenfalls aussortiert werden.

Was ist damit?

Zur Veranschaulichung können Sie dieses Szenario wie folgt simulieren:


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

Antwort1

Geben Sie an sort, ob nach Versionsnummern sortiert werden soll:

$ 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

Alternativ können Sie angeben, dass nach allen vier Feldern numerisch sortiert werden soll:

$ 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

verwandte Informationen