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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.