14 Hyödyllisiä esimerkkejä Linux-lajittelukomennosta - osa 1


Lajittelu on Linux-ohjelma, jota käytetään tekstitiedostojen rivien tulostamiseen ja kaikkien tiedostojen ketjutukseen järjestyksessä. Lajittelu-komento vie tyhjää tilaa kentän erottimena ja koko syötetiedosto lajitteluavaimena. On tärkeää huomata, että lajittelukomento ei oikeastaan lajittele tiedostoja, vaan tulostaa vain lajiteltu tulosteen, kunnes ohjaat lähdön uudelleen.

Tämän artikkelin tarkoituksena on saada syvällinen käsitys Linux ’sort’ -komennosta ja sisältää 14 hyödyllistä käytännön esimerkkiä, jotka osoittavat, kuinka lajittelukomentoa käytetään Linuxissa.

1. Ensinnäkin luomme tekstitiedoston (tecmint.txt) komentojen "lajittelu" suorittamiseksi. Työhakemisto on '/ home/$USER/Desktop/tecmint.

Alla olevan komennon "-e" -vaihtoehto mahdollistaa käänteisen viivan tulkinnan ja/n käskee kaikua kirjoittamaan kukin merkkijono uudelle riville.

$ echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

2. Ennen kuin aloitamme lajittelulla, katsotaan tiedoston sisältö ja ulkoasu.

$ cat tecmint.txt

3. Lajittele nyt tiedoston sisältö seuraavalla komennolla.

$ sort tecmint.txt

Huomaa: Yllä oleva komento ei oikeastaan lajittele tekstitiedoston sisältöä, vaan näyttää vain lajitellun lähdön päätelaitteessa.

4. Lajittele tiedoston ”tecmint.txt” sisältö ja kirjoita se tiedostoon nimeltä (sorted.txt) ja tarkista sisältö cat-komennolla.

$ sort tecmint.txt > sorted.txt
$ cat sorted.txt

5. Lajittele nyt tekstitiedoston ”tecmint.txt” sisältö käänteisessä järjestyksessä käyttämällä ”-r” -kytkintä ja ohjaa ulostulo tiedostoon ”reversesorted.txt”. Tarkista myös juuri luodun tiedoston sisältöluettelo.

$ sort -r tecmint.txt > reversesorted.txt
$ cat reversesorted.txt

6. Aiomme luoda uuden tiedoston (lsl.txt) samaan paikkaan yksityiskohtaisten esimerkkien saamiseksi ja täyttää sen käyttämällä kotihakemiston ls -l-tulosta.

$ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt
$ cat lsl.txt

Nyt näet esimerkkejä sisällön lajittelusta muiden kenttien eikä oletusarvoisten alkumerkkien perusteella.

7. Lajittele tiedoston ”lsl.txt” sisältö toisen sarakkeen perusteella (joka edustaa symbolisten linkkien määrää).

$ sort -nk2 lsl.txt

Huomautus: Edellä olevan esimerkin ”-n” -vaihtoehto lajittelee sisällön numeerisesti. Vaihtoehtoa '-n' on käytettävä, kun halusimme lajitella tiedoston sarakkeen perusteella, joka sisältää numeerisia arvoja.

8. Lajittele tiedoston ”lsl.txt” sisältö yhdeksännen sarakkeen perusteella (joka on tiedostojen ja kansioiden nimi ja ei-numeerinen).

$ sort -k9 lsl.txt

9. Lajittelukomennon suorittaminen tiedostossa ei ole aina välttämätöntä. Voimme viedä sen suoraan terminaaliin varsinaisella komennolla.

$ ls -l /home/$USER | sort -nk5

10. Lajittele ja poista kaksoiskappaleet tekstitiedostosta tecmint.txt. Tarkista, onko kaksoiskappale poistettu vai ei.

$ cat tecmint.txt
$ sort -u tecmint.txt

Tähänastiset säännöt (mitä olemme havainneet):

  1. Numeroilla alkavat viivat ovat suositeltavia luettelossa ja ne sijaitsevat yläosassa, kunnes toisin on määritelty (-r).
  2. Pienillä kirjaimilla alkavat viivat ovat suositeltavia luettelossa ja ne sijaitsevat yläosassa, kunnes toisin on määritelty (-r).
  3. Sisältö luetellaan aakkosien esiintymisen perusteella sanakirjassa, kunnes toisin on määritelty (-r).
  4. Lajittele komento oletusarvoisesti käsittele kutakin riviä merkkijonona ja lajittele se sen mukaan aakkoset sanastossa esiintyvien esiintymien mukaan (numeerinen suositeltava; katso sääntö - 1), kunnes toisin määritetään.

11. Luo kolmas tiedosto ”lsla.txt” nykyiseen sijaintiin ja täytä se ”ls -lA” -komennon avulla.

$ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt
$ cat lsla.txt

Ne, jotka ymmärtävät ”ls” -komennon, tietävät, että ”ls -lA” = ”ls -l’ + piilotetut tiedostot. Joten suurin osa näiden kahden tiedoston sisällöstä olisi sama.

12. Lajittele kahden tiedoston sisältö vakiotulostuksella yhdellä kertaa.

$ sort lsl.txt lsla.txt

Huomaa tiedostojen ja kansioiden toistuminen.

13. Nyt voimme nähdä, kuinka kaksoiskappaleet lajitellaan, yhdistetään ja poistetaan näistä kahdesta tiedostosta.

$ sort -u lsl.txt lsla.txt

Huomaa, että kaksoiskappaleet on jätetty pois lähdöstä. Voit myös kirjoittaa lähdön uuteen tiedostoon ohjaamalla lähdön tiedostoon.

14. Voimme myös lajitella tiedoston tai lähdön sisällön useamman kuin yhden sarakkeen perusteella. Lajittele ”ls -l” -komennon lähtö kenttien 2,5 (Numeerinen) ja 9 (Ei-Numeerinen) perusteella.

$ ls -l /home/$USER | sort -t "," -nk2,5 -k9

Tässä kaikki tältä erää. Seuraavassa artikkelissa käsitellään vielä muutama esimerkki lajittelukomennosta yksityiskohtaisesti sinulle. Till sitten pysy kuulolla ja yhteydessä Tecmintiin. Jatka jakamista. Jatka kommentoimista. Tykkää ja jaa meitä ja auta meitä levittämään.

Lue myös: 7 mielenkiintoista Linux-lajittelukomennon esimerkkiä - osa 2