Administrując systemami Linux, zarządzając sieciami czy firmowymi firewallami, często tworzy się listy zawierające adresy IP. Listy tworzone są w rozmaitych celach np. blokowania ruchu. Z czasem rozrastają się do coraz większych rozmiarów. Potrzeba ich manualnego posortowania stałoby się zbyt czasochłonna. Aby uporządkować adresy IP można skorzystać z linuksowego polecenia sort.
Plik z adresami IP (adresy.txt)
8.8.8.8 94.146.251.100 8.8.4.4 153.19.250.123 80.50.231.226 150.254.183.15
Aby posortować numerycznie adresy IP należy skorzystać z polecenia sort oraz następujących opcji:
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 adresy.txt
Gdzie:
– n informuje sort, że sortowane będą liczby (sortowanie numeryczne)
– t każda z linii zawiera kolejne pola z liczbami, które oddzielone są wskazanym separatorem (w IP są to kropki „.”)
– k wskazanie pola / kolumny, (-k 1,1 sortowanie wg. pierwszego pola/kolumny i tylko tego pola, następnie wg. następnego -k2,2, aż do pola 4 bo z tylu składa się adres IP)
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 adresy.txt 8.8.4.4 8.8.8.8 80.50.231.226 94.146.251.100 150.254.183.15 153.19.250.123
Od wersji 7.0 GNU coreutils, wprowadzono opcję sortowania wg. numerów wersji (oprogramowania). Zamiast wpisywać długie polecenie sort, przedstawione we wcześniejszej części artykułu można skorzystać z opcji:
-V, --version-sort
Opcja ta sortuje kolejne linie według liczb (docelowo numerów wersji np. oprogramowana np. ver 1.0, ver. 2.0). Jako, że adres IP przypomina numer wersji oprogramowania polecenie zadziała jak należy.
sort -V adresy.txt 8.8.4.4 8.8.8.8 80.50.231.226 94.146.251.100 150.254.183.15 153.19.250.123
Dodaj komentarz