Linux-lajittelu-komennon käyttö

Lajittavia kohteita on rajoitettava jollakin tavalla

Linux-tekstitiedoston tiedot voidaan lajitella lajittelukomennolla niin kauan kuin jokainen elementti on rajattu jollakin tavalla. Usein pilkkua käytetään erottuna rajattua tietoa.

Perussäännöt lajitteluun

Sort-komento järjestää tekstitiedostojen rivit lajitella ne numeerisesti ja aakkosjärjestykseen. Sort-komennon oletussäännöt ovat:

Tekstitiedoston lajittelu

Jotta linjat voitaisiin lajitella rajattuna Linux-tiedostona, käytät tällaista lajittelukomentoa:

$ sort -k2 test.txt

joka lajittelee tiedoston "test.txt" toisessa sarakkeessa alkavien merkkien mukaan (k2 viittaa toiseen sarakkeeseen). Olettaen, että syötetiedoston sisältö on seuraava:

1, Justin Timberlake, osasto 545, hinta 7,30 dollaria 2, Taylor Swift, nimike 723, hinta 7,90 dollaria 3, Mick Jagger, osasto 610, hinta 7,90 dollaria 4, Lady Gaga, nimike 118, hinta 7,30 dollaria 5, Johnny Cash, osasto 482, hinta 6,50 dollaria 6, Elvis Presley, osasto 335, hinta 7,30 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria 8, Michael Jackson, osasto 373, hinta 5,50 dollaria

Koska tässä esimerkissä toisessa sarakkeessa on etu- ja sukunimet, lajiteltu tuotos on järjestetty kunkin sarakkeen ensimmäisen henkilön kirjaimella - Elvis, John, Johnny, Justin, Lady, Michael, Mick ja Taylor , kuten alla:

6, Elvis Presley, osasto 335, hinta 6,30 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria 5, Johnny Cash, osasto 482, hinta 6,50 dollaria 1, Justin Timberlake, nimike 545, hinta 6,30 dollaria 4, Lady Gaga, nimike 118, hinta 6,30 dollaria 8, Michael Jackson, osasto 373, hinta 5,50 dollaria 3, Mick Jagger, osasto 610, hinta 7,90 dollaria 2, Taylor Swift, osasto 723, hinta 7,90 dollaria

Jos lajit tiedoston -k-3: llä (käyttäen rivin sisältöä sarakkeessa 3 - otsikon sarakkeen sarakkeessa), tuotos on:

4, Lady Gaga, nimike 118, hinta 6,30 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria 6, Elvis Presley, osasto 335, hinta 6,30 dollaria 8, Michael Jackson, osasto 373, hinta 5,50 dollaria 5, Johnny Cash, osasto 482, hinta 6,50 dollaria 1, Justin Timberlake, nimike 545, hinta 6,30 dollaria 3, Mick Jagger, osasto 610, hinta 7,90 dollaria 2, Taylor Swift, osasto 723, hinta 7,90 dollaria

ja

$ sort -k4 test.txt

tuottaa luettelon lajiteltuna hinnan mukaan:

8, Michael Jackson, osasto 373, hinta 5,50 dollaria 1, Justin Timberlake, nimike 545, hinta 6,30 dollaria 4, Lady Gaga, nimike 118, hinta 6,30 dollaria 6, Elvis Presley, osasto 335, hinta 6,30 dollaria 5, Johnny Cash, osasto 482, hinta 6,50 dollaria 2, Taylor Swift, nimike 723, hinta 7,90 dollaria 3, Mick Jagger, osasto 610, hinta 7,90 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria

Järjestyksen peruuttaminen

-r-vaihtoehto peruuttaa lajittelun. Esimerkiksi käyttämällä yllä olevia tuloksia:

$ sort -k4 -r test.txt

saannot:

7, John Lennon, osasto 271, hinta 7,90 € 3, Mick Jagger, osasto 610, hinta 7,90 € 2, Taylor Swift, nimike 723, hinta 7,90 € 5, Johnny Cash, osasto 482, hinta 6,50 dollaria 6, Elvis Presley, osasto 335, hinta 6,30 dollaria 4, Lady Gaga, nimike 118, hinta 6,30 dollaria 1, Justin Timberlake, osasto 545, hinta 6,30 dollaria 8, Michael Jackson, osasto 373, hinta 5,50 dollaria

Tallennetun tiedoston tallentaminen

Tiedoston lajittelu ei tallenna sitä. Tallenna lajiteltu luettelo tiedostoon käyttämällä uudelleenohjaustoimintaa:

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

jossa "test_new.txt" on uusi tiedosto.

Stream-lähdön lajittelu

Voit myös soveltaa lajittelukomentoa virran ulostuloon, kuten putkioperaattori:

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

Tämä lajittelee ls- komennon tuottaman tiedostoluettelon tiedoston koon, alkaen suurimmista tiedostoista. -n operaattori määrittää numeerisen lajittelun pikemminkin kuin aakkosjärjestyksessä.