Utilizează comanda de sortare Linux

Elementele care urmează să fie sortate trebuie să fie delimitate într-un fel

Datele dintr-un fișier text Linux pot fi sortate cu comanda de sortare atâta timp cât fiecare element este delimitat într-un fel. În mod frecvent, virgula este folosită ca separator pentru informații delimitate.

Reguli de bază pentru sortare

Comanda de sortare rearanjează liniile într-un fișier text pentru a le sorta numeric și alfabetic. Regulile implicite pentru comanda de sortare sunt:

Sortarea unui fișier text

Pentru a sorta liniile într-un fișier Linux delimitat, utilizați comanda de sortare astfel:

$ sort -k2 test.txt

care sortează fișierul "test.txt" în funcție de caracterele care încep de la a doua coloană (k2 se referă la a doua coloană). Presupunând că conținutul fișierului de intrare este:

1, Justin Timberlake, Titlu 545, Pret $ 7.30 2, Taylor Swift, Titlu 723, Pret $ 7.90 3, Mick Jagger, Titlu 610, Pret $ 7.90 4, Lady Gaga, Titlu 118, Pret $ 7.30 5, Johnny Cash, Titlu 482, Pret $ 6.50 6, Elvis Presley, Titlu 335, Pret $ 7.30 7, John Lennon, Titlu 271, Pret $ 7.90 8, Michael Jackson, Titlul 373, Pret $ 5.50

Deoarece a doua coloană din acest exemplu conține numele și prenumele, ieșirea sortată este ordonată de prima literă a primului nume al fiecărui individ din coloana a doua - Elvis, John, Johnny, Justin, Lady, Michael, Mick și Taylor , așa cum se arată mai jos:

6, Elvis Presley, Titlu 335, Pret $ 6.30 7, John Lennon, Titlu 271, Preț $ 7.90 5, Johnny Cash, Titlu 482, Preț $ 6.50 1, Justin Timberlake, Titlu 545, Preț $ 6.30 4, Lady Gaga, Titlu 118, Preț $ 6.30 8, Michael Jackson, Titlu 373, Pret $ 5.50 3, Mick Jagger, Titlu 610, Pret $ 7.90 2, Taylor Swift, Titlu 723, Pret $ 7.90

Dacă sortați fișierul cu -k3 (utilizând conținutul liniei începând cu coloana 3 - coloana cu numărul de titlu), ieșirea este:

4, Lady Gaga, Titlu 118, Preț $ 6.30 7, John Lennon, Titlu 271, Preț $ 7.90 6, Elvis Presley, Titlu 335, Preț $ 6.30 8, Michael Jackson, Titlul 373, Preț $ 5.50 5, Johnny Cash, Titlu 482, Preț $ 6.50 1, Justin Timberlake, Titlu 545, Pret $ 6.30 3, Mick Jagger, Titlu 610, Pret $ 7.90 2, Taylor Swift, Titlu 723, Pret $ 7.90

și

$ sort -k4 test.txt

produce o lista sortata dupa pret:

8, Michael Jackson, Titlu 373, Pret $ 5.50 1, Justin Timberlake, Titlu 545, Preț $ 6.30 4, Lady Gaga, Titlu 118, Preț $ 6.30 6, Elvis Presley, Titlu 335, Preț $ 6.30 5, Johnny Cash, Titlu 482, Preț $ 6.50 2, Taylor Swift, Titlu 723, Pret $ 7.90 3, Mick Jagger, Titlu 610, Pret $ 7.90 7, John Lennon, Titlu 271, Pret $ 7.90

Inversarea unui sortare

Opțiunea -r inversează sortarea. De exemplu, utilizând rezultatele de mai sus:

$ sort -k4 -r test.txt

randamentele:

7, John Lennon, Titlu 271, Preț $ 7.90 3, Mick Jagger, Titlu 610, Preț $ 7.90 2, Taylor Swift, Titlu 723, Preț $ 7.90 5, Johnny Cash, Titlu 482, Preț $ 6.50 6, Elvis Presley, Titlu 335, Preț $ 6.30 4, Lady Gaga, Titlu 118, Pret $ 6.30 1, Justin Timberlake, Titlu 545, Pret $ 6.30 8, Michael Jackson, Titlu 373, Pret $ 5.50

Salvarea unui fișier sortit

Sortarea unui fișier nu îl salvează. Pentru a salva lista sortată într-un fișier, utilizați operatorul de redirecționare:

sort -k4 -r test.txt> test_new.txt

unde "test_new.txt" este noul fișier.

Sortarea unei ieșiri de flux

De asemenea, puteți aplica comanda de sortare la ieșirea unui flux, cum ar fi operatorul conductei:

$ ls -al | sort -r -n -k5

Aceasta sortează ieșirea din lista de fișiere generată de comanda ls după dimensiunea fișierului, începând cu cele mai mari fișiere. Operatorul -n specifică sortarea numerică mai degrabă decât alfabetică.