Linux | Terminal - Sortowanie wierszy plików tekstowych - sort · Technik informatyk egzamin zawodowy

Soisk / Linux

Linux | Terminal - Sortowanie wierszy plików tekstowych - sort

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: f1skoki.
W zestawieniu znaleźć się mają kolumnny: pozycja, nazwisko, imię, trzyliterowy kod kraju, liczba zdobytych punktów. Pozycje zestawienia oddzielone od siebie tabulatorami.

  1. Wypisz na ekran posortowaną w kolejności odwrotnej klasyfikację Formuły 1.
  2. Wypisz klasyfikację skoków posortowaną nazwiskami zawodników od A do Z.
  3. Wypisz klasyfikację F1 posortowaną 2 literą kodu kraju.
  4. Zapisz klasyfikację skoków do pliku skoki2 posortowaną w kolejności odwrotnej po liczbie punktów.
  5. Zapisz zestawienie zbiorcze obu klasyfikacji zapisane do pliku zbiorcze, posortowane numerem pozycji.
  6. Znajdź wszystkie pliki katalogu zestawienia (find) i wypisz zawartość plików na ekran posortowaną w odwrotnej kolejności.
  7. Zapisz zawartość wszystkich plików katalogu zestawienia do pliku całość.

 

Dodatkowy plik ćwiczeniowy załączony poniżej.

 

Załączniki