IP-adressen sorteren met 'sort'

Submitted by HighKing on Wed, 08/03/2016 - 13:56

Leuk, ip-adressen listen... als je normaal gesproken bijvoorbeeld ip-adressen .1 t/m .10 op een server hebt en je probeert ze te sorteren dan krijg je iets als dit:
10.1.2.1
10.1.2.10
10.1.2.2
10.1.2.3
10.1.2.4
10.1.2.5
10.1.2.6
10.1.2.7
10.1.2.8
10.1.2.9

Maar die 10 zie je toch liever netjes onder de 9, niet?
Wat je kunt doen is sort inlichten over het feit dat de punt een scheidingsteken is en vervolgens per veld sorteren. bijvoorbeeld als volgt:

ip a | grep inet | awk '{print$2}' | cut -d'/' -f1 | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4

Gevolg:
10.1.2.1
10.1.2.2
10.1.2.3
10.1.2.4
10.1.2.5
10.1.2.6
10.1.2.7
10.1.2.8
10.1.2.9
10.1.2.10

Jeej! :-)