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:
- Teksti, joka alkaa numerolla, tulee näkyviin ennen tekstiä, joka alkaa kirjaimella; alemmat numerot lajitellaan ensin.
- Teksti alkaa kirjaimella, joka näkyy aakkosissa aikaisemmin, että muiden tekstisisältöjen ensimmäinen kirjain lajitellaan ennen tekstiä, joka alkaa kirjaimella, joka näkyy myöhemmin aakkosissa.
- Kun teksti alkaa isoilla kirjaimilla ja pienillä kirjaimilla, pienikokoinen esiintymä lajitellaan ensin.
Tekstitiedoston lajittelu
Jotta linjat voitaisiin lajitella rajattuna Linux-tiedostona, käytät tällaista lajittelukomentoa:
$ sort -k2 test.txtjoka 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 dollariaKoska 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 dollariaJos 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 dollariaja
$ sort -k4 test.txttuottaa 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 dollariaJärjestyksen peruuttaminen
-r-vaihtoehto peruuttaa lajittelun. Esimerkiksi käyttämällä yllä olevia tuloksia:
$ sort -k4 -r test.txtsaannot:
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 dollariaTallennetun tiedoston tallentaminen
Tiedoston lajittelu ei tallenna sitä. Tallenna lajiteltu luettelo tiedostoon käyttämällä uudelleenohjaustoimintaa:
sort -k4 -r test.txt> test_new.txtjossa "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 -k5Tämä lajittelee ls- komennon tuottaman tiedostoluettelon tiedoston koon, alkaen suurimmista tiedostoista. -n operaattori määrittää numeerisen lajittelun pikemminkin kuin aakkosjärjestyksessä.