sort

Z Linux Wiki
Skocz do: nawigacja, szukaj

sort – konsolowe narzędzie służące do sortowania linii w podanych plikach (bądź standardowym wejściu) ze względu na znaki, którymi zaczynają się one same lub odpowiednia kolumna w nich zawarta.

Użycie

$ sort [opcje] [pliki] ...

Można podać dowolną liczbę plików. Jeśli nie podane zostały żadne pliki lub jeden z nich to - (myślnik), zostanie użyte standardowe wejście.

Najczęściej używane przełączniki

  • -b lub --ignore-leading-blanks – ignoruje znaki białe na początku linii;
  • -f lub --ignore-case – ignoruje wielkość liter;
  • -k X lub --key=X – sortuje biorąc pod uwagę X-tą kolumnę;
  • -n lub --numeric-sort – sortuje ze względu na liczby, którymi zaczynają się linie;
  • -o X lub --output=X – zapisuje posortowane linie do pliku X, zamiast wyświetlać je na standardowe wyjście;
  • -r lub --reverse – odwraca sortowanie;
  • -t X lub --field-separator=X – używa X jako separatora kolumn.

Przykłady

Zwykłe sortowanie

Plik plik.txt zawiera kilka nieposortowanych opisów przełączników z poprzedniej sekcji.

-r lub --reverse – odwraca sortowanie;
-f lub --ignore-case – ignoruje wielkość liter;
-b lub --ignore-leading-blanks – ignoruje znaki białe na początku linii;
-n lub --numeric-sort – sortuje ze względu na liczby, którymi zaczynają się linie;

Sortowanie przy użyciu polecenia sort plik.txt spowoduje posortowanie tych opisów wg liter przełączników im odpowiadających:

$ sort plik.txt
-b lub --ignore-leading-blanks – ignoruje znaki białe na początku linii;
-f lub --ignore-case – ignoruje wielkość liter;
-n lub --numeric-sort – sortuje ze względu na liczby, którymi zaczynają się linie;
-r lub --reverse – odwraca sortowanie;

Odwrócone zwykłe sortowanie

Użycie polecenia sort -r plik.txt spowoduje posortowanie linii w owym pliku, podobnie jak w poprzednim przykładzie, a następnie odwrócenie ich kolejności:

$ sort -r plik.txt 
-r lub --reverse – odwraca sortowanie;
-n lub --numeric-sort – sortuje ze względu na liczby, którymi zaczynają się linie;
-f lub --ignore-case – ignoruje wielkość liter;
-b lub --ignore-leading-blanks – ignoruje znaki białe na początku linii;

Sortowanie liczbowe

Plik liczby.txt zawiera kila nieposegregowanych liczb:

123
2135
54
6423
4648864465
65212
548892
231588889891

Normalne posortowanie, z użyciem komendy sort liczby.txt spowoduje posortowanie ich w sposób alfabetyczny (tj. najpierw liczby zaczynające się od 1, potem od 2, etc.):

$ sort liczby.txt 
123
2135
231588889891
4648864465
54
548892
6423
65212

Jeśli chcemy posortować je w sposób liczbowy (tj. najpierw najmniejsze liczby, potem największe), musimy użyć przełącznika -n. Użycie polecenia sort -n liczby.txt spowoduje podanie oczekiwanego przez nas wyniku:

$ sort -n liczby.txt 
54
123
2135
6423
65212
548892
4648864465
231588889891