
Linux: Wiersz poleceń – sortowanie wierszy plików tekstowych
Wykorzystanie polecenia SORT do poukładania zawartości plików tekstowych.
Składnia: sort [opcja] [plik]
Podstawowe opcje
-b – ignnoruje początkowe znaki odstępu
-d – bierze pod uwagę wyłącznie litery, cyfry i znaki odstępu
-f – traktuje małe litery jak wielkie
-g – porównuje według wartości liczbowej
-i – bierze pod uwagę wyłącznie znaki drukowalne
-M – kolejność miesięcy, porządek: (nieznane) < sty < … < gru
-h – porównuje liczby w formacie czytelnym dla ludzi (np. 2K, 1G)
-n – porównuje zgodnie z liczbową wartością łańcucha
-R – sortuje wg losowego skrótu kluczy
-r – odwraca porządek sortowania
-m – łączy pliki posortowane wcześniej, nie sortuje
-o – wypisuje wynik do PLIKU zamiast na standardowe wyjście
-u – z opcją -c: sprawdza czy wiersze są unikalne, bez opcji -c: wyświetla tylko pierwszy z identycznych wierszy
Więcej opcji dostępnych jest po użyciu komendy man sort
Przykłady
Operacji dokonywać będziemy na pliku przyklad o następującej zawartości:
Kot 2 Zebra 45 Pies 3 mysz 1 Kojot 6 Kot 7 Baran 4 Anakonda 5 Gepard 13 leniwiec 10
Podstawowe sortowanie linii pliku tekstowego
sort przyklad
Anakonda 5 Baran 4 Gepard 13 Kojot 6 Kot 2 Kot 7 leniwiec 10 mysz 1 Zebra 45 Pies 3
Odwrotna kolejność
sort przyklad -r
Pies 3 Zebra 45 mysz 1 leniwiec 10 Kot 7 Kot 2 Kojot 6 Gepard 13 Baran 4 Anakonda 5
Przesłanie wyniku do pliku wynik zamiast na standardowe wyjście:
sort przyklad -o wynik
sort przyklad > wynik
Sortowanie według drugiej kolumny
sort przyklad -k 2
mysz 1 leniwiec 10 Gepard 13 Kot 2 Pies 3 Baran 4 Zebra 45 Anakonda 5 Kojot 6 Kot 7
Sortowanie według drugiej kolumny z uwzględnieniem, że są to wartości liczbowe
sort przyklad -k 2 -n
mysz 1 Kot 2 Pies 3 Baran 4 Anakonda 5 Kojot 6 Kot 7 leniwiec 10 Gepard 13 Zebra 45
Sortowanie z pominięciem pustych znaków na początku linii
sort przyklad -b
Anakonda 5 Baran 4 Gepard 13 Kojot 6 Kot 2 Kot 7 leniwiec 10 mysz 1 Pies 3 Zebra 45
Sortowanie w losowej kolejności
sort przyklad -R
Wyszukanie określonych plików i posortowanie ich zawartości
sort przyklad > przyklad2
find -name “*~” -print0 | sort –files0-from=-
Anakonda 5 Anakonda 5 Baran 4 Baran 4 Gepard 13 Gepard 13 Kojot 6 Kojot 6 Kot 2 Kot 2 Kot 7 Kot 7 leniwiec 10 leniwiec 10 mysz 1 mysz 1 Zebra 45 Zebra 45 Pies 3 Pies 3
Ćwiczenia
Utwórz 2 zestawienia 10 najlepszych w klasyfikacji końcowej ostatniego sezonu Formuły 1 / Skoków narciarskich. Zestawienia zapisz w katalogu zestawienia odpowiednio pod nazwami: f1, skoki.
W zestawieniu znaleźć się mają kolumnny: pozycja, nazwisko, imię, trzyliterowy kod kraju, liczba zdobytych punktów. Pozycje zestawienia oddzielone od siebie tabulatorami.
- Wypisz na ekran posortowaną w kolejności odwrotnej klasyfikację Formuły 1.
- Wypisz klasyfikację skoków posortowaną nazwiskami zawodników od A do Z.
- Wypisz klasyfikację F1 posortowaną 2 literą kodu kraju.
- Zapisz klasyfikację skoków do pliku skoki2 posortowaną w kolejności odwrotnej po liczbie punktów.
- Zapisz zestawienie zbiorcze obu klasyfikacji zapisane do pliku zbiorcze, posortowane numerem pozycji.
- Znajdź wszystkie pliki katalogu zestawienia (find) i wypisz zawartość plików na ekran posortowaną w odwrotnej kolejności.
- Zapisz zawartość wszystkich plików katalogu zestawienia do pliku całość.
Dodatkowy plik ćwiczeniowy: nazwiska_sort