8.3. Sortowanie adresów IP

Problem

Chcemy posortować listę adresów IP. Sortowanie powinno być wykonane względem ostatniego oktetu lub powinno być realizowane logicznie na podstawie całego adresu.

Rozwiązanie

Sortowanie względem ostatniego oktetu (stara składnia):

$ sort –t. –n +3.0 lista.adresów
10.0.0.2
192.168.0.2
192.168.0.4
10.0.0.5
192.168.0.12
10.0.0.20
$

Poprawne sortowanie całych adresów IP (składnia POSIX):

$ sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n lista.adresów
10.0.0.2
10.0.0.5
10.0.0.20
192.168.0.2
192.168.0.4
192.168.0.12
$

Analiza

Ponieważ dane mają charakter liczbowy, do polecenia została dodana opcja –n. Opcja –t natomiast wskazuje znak, który powinien być uznany za separator pól (w tym przypadku separatorem jest kropka). Dzięki niemu ...

Get Bash. Receptury now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.