sort în Linux / Bash

Procesare și filtrare text POSIX / GNU Coreutils

Sortează liniile de text în ordine alfabetică, numerică sau după o coloană specifică.

Sintaxă comandă
sort [opțiuni] [fișier...]

Ce face sort

Comanda sort ordonează conținutul fișierelor sau al fluxurilor din conducte (pipes). În mod implicit, sortarea se realizează în ordine alfabetică standard.

Pentru numere reale este necesară opțiunea numerică -n, altfel numărul 100 va fi considerat mai mic decât 20 (deoarece caracterul ‘1’ este înaintea lui ‘2’).

Opțiuni și argumente

Opțiune / Parametru Descriere
-n, --numeric-sort Sortează după valoarea numerică a șirului.
-r, --reverse Inversează ordinea rezultatelor (descrescător).
-u, --unique Elimină liniile duplicate, păstrând doar instanțe unice.
-k, --key=POZIȚIE Sortează pe baza unei anumite coloane (ex. -k 2,2n sortează numeric după coloana 2).
-h, --human-numeric-sort Sortează numere în format lizibil (2K, 5M, 1G).

Exemple

Exemplul 1: Sortare numerică vs sortare alfabetică

Opțiunea -n asigură ordonarea corectă a valorilor matematice.

cat << 'EOF' > preturi.txt
100
20
5
50
EOF
sort -n preturi.txt

Rezultat

5
20
50
100

Greșeli frecvente

  • Sortarea numerelor fără opțiunea -n, obținând o ordine alfabetică greșită.

Comenzi înrudite

  • uniq: Raportează sau elimină liniile duplicate consecutive dintr-un flux de text.
  • awk: Limbaj de procesare a textului structurat pe coloane, ideal pentru rapoarte și extragere de date.