sortare (Unix)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
sortează - ajută

sortare este o comandă de Unix si Unix de operare sisteme , și mai general a POSIX [1] sisteme , care citește unul sau mai multe fișiere text (sau standard de intrare ) și sortează liniile în ordine alfabetică sau în funcție de criteriile specificate, care produc rezultatul la ieșirea standard sau la un fișier. Este un tip de filtru .

sort poate verifica și dacă liniile citite sunt deja sortate conform unui anumit criteriu. În acest caz, nu produce rezultate, iar valoarea sa de ieșire este 0 dacă datele sunt deja sortate sau mai mare de 0 dacă nu este.

sort poate elimina direct liniile duplicate similare cu comanda uniq .

Sintaxă

Sintaxa generală de sortare este următoarea:

 sortare [ opțiuni ] [-] [ fișier1 [ fișier2 ...]]

Parametrii opționali ai fișierelor indică fișierele text din care să citească liniile de sortat. Dacă sunt specificate mai multe fișiere, acestea sunt sortate individual, iar apoi liniile sunt unite, astfel încât rezultatul final să fie sortat, de asemenea. Dacă nu este specificat niciun fișier, liniile care trebuie sortate sunt citite din intrarea standard .

Linia dublă -- (opțional) indică faptul că următorii parametri nu trebuie considerați opțiuni.

Opțiuni

Printre principalele opțiuni se numără:

-c
Verificați dacă liniile citite sunt deja sortate conform criteriilor specificate. În acest caz, comanda nu produce mesaje, iar valoarea de ieșire este egală cu 0 dacă datele sunt deja sortate sau diferită de 0 dacă nu sunt.
-m
Se presupune că fișierele specificate sunt deja sortate și continuă să fuzioneze liniile lor.
-o nome_file
Scrie rezultatul în fișierul indicat în loc de ieșire standard .
-u
Eliminați liniile duplicate din rezultat (similar cu ceea ce a făcut comanda uniq ).
-f
Nu face distincție între majuscule și minuscule.
-r
Inversează direcția de comandă, producând rezultate începând cu cea mai mare valoare.
-n
Sortați numeric în loc de alfabetic.
-i
Ignorați caracterele care nu se tipăresc.
-k chiave_di_ordinamento
Indică o porțiune a liniei care trebuie utilizată ca cheie de sortare. Puteți specifica această opțiune de mai multe ori pentru a defini mai multe chei de sortare care vor fi utilizate în cascadă.
-t carattere
Specifică caracterul de utilizat ca separator de câmp (în loc de valoarea implicită) la definirea cheilor de sortare.

Versiunea de sortare GNU oferă, de asemenea , următoarele opțiuni, printre altele:

-g
Se sortează numeric acceptând și numerele recunoscute de funcția de bibliotecă de limbă C standard strtod() (de exemplu, numere exprimate în notație științifică).
-s
Realizează un sortare stabilă (cu aceleași chei de sortare, păstrează ordinea inițială a liniilor).

Sortarea tastelor

Folosind opțiunea -k este posibil să definiți o cheie de sortare pe o porțiune a liniei. Prin specificarea mai multor opțiuni -k , puteți defini mai multe chei de sortare pentru a fi utilizate în cascadă.

Sintaxa unei chei de sortare este după cum urmează:

numero_campo_iniziale [. indice_primo_carattere ][ tipo ][, numero_campo_finale [. indice_ultimo_carattere ][ tipo ]]

initial_field_number este o valoare numerică care indică numărul câmpului (începând de la 1 ) care trebuie inclus în cheie, iar index_first_character este indexul primului caracter din câmpul care trebuie luat în considerare (începând de la 1 ).

În mod similar, final_field_number , dacă este specificat, indică ultimul câmp care trebuie inclus în cheie, iar last_character_index este indexul ultimului caracter al câmpului menționat.

Ambele pot fi urmate de tip , care este un caracter care specifică tipul de sortare care trebuie efectuat pentru câmpul particular (de exemplu, n pentru a indica o sortare numerică, f pentru a indica faptul că nu se ia în considerare diferența dintre majuscule și minuscule, r pentru sortare inversă).

Împărțirea unei linii în câmpuri se face pe baza caracterului separator specificat cu opțiunea -t . În absența sa, orice secvență de spații este considerată ca separator.

Exemple

Sortare alfabetică

Sortați alfabetic pentru întreaga linie:

 $ cat example.txt
Ioan 200
Alice 30
Charles 100
Bruno 5

$ sort example.txt
Alice 30
Bruno 5
Charles 100
Ioan 200

Sortare numerică cu cheie

Sortați numeric folosind al doilea câmp ca cheie:

 $ cat example.txt
Ioan 200
Alice 30
Charles 100
Bruno 5

$ sort -k 2 -n example.txt
Bruno 5
Alice 30
Charles 100
Ioan 200

Sortați fișierele și directoarele după dimensiunea descrescătoare (a cincea coloană):

 $ ls -l | sortează -n -r -k 5
-rw-r - r-- 1 rădăcină rădăcină 1057 1 mar 20:12 inel + stea
-rw-r - r-- 1 rădăcină rădăcină 727 1 mar 20:12 A_star
-rw-r - r-- 1 rădăcină rădăcină 535 1 martie 20:12 stea2
-rw-r - r-- 1 rădăcină rădăcină 505 1 mar 20:12 spirals_and_stars
-rw-r - r-- 1 rădăcină rădăcină 503 1 martie 20:12 curbe
-rw-r - r-- 1 rădăcină rădăcină 475 1 mar 20:12 în mod similar
-rw-r - r-- 1 rădăcină rădăcină 458 1 martie 20:12 inel
-rw-r - r-- 1 rădăcină rădăcină 415 1 mar 20:12 stele
-rw-r - r-- 1 rădăcină rădăcină 387 1 martie 20:12 sprial
-rw-r - r-- 1 rădăcină rădăcină 377 1 martie 20:12 polys

Notă

  1. ^ (EN) sort , din The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. Adus la 20 mai 2008 .

Elemente conexe

linkuri externe

  • (EN) sort: Sortează fișierele text [ conexiune întreruptă ] , în manualul GNU Texutils . Adus 20.05.2008 .
  • (EN) sort , Linux Man Pages. Adus pe 21 mai 2008 .
  • ( EN ) sort (1) , în colecția manualului de referință Solaris 10 - pagini man . Adus pe 21 mai 2008 .
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT