14 hyödyllistä esimerkkiä Linuxin "sort"-komennosta - Osa 1


"Sort"-komento on Linux-ohjelma, jota käytetään syöttötekstitiedostojen rivien tulostamiseen ja kaikkien tiedostojen ketjuttamiseen lajiteltuun järjestykseen. Lajittele-komento ottaa tyhjän tilan kentän erottimena ja koko syöttötiedoston lajitteluavaimeksi. On tärkeää huomata, että sort-komento ei itse lajittele tiedostoja, vaan tulostaa vain lajitellut tulosteet, kunnes ohjaat tulosteen uudelleen.

Tämän artikkelin tarkoituksena on saada syvällinen käsitys Linuxin sort-komennosta. Siinä on 14 hyödyllistä käytännön esimerkkiä, jotka osoittavat, miten lajittelukomentoa käytetään Linuxissa.

1. Tekstitiedoston luominen määritetyllä sisällöllä

Ensin luomme tekstitiedoston nimeltä tecmint.txt, jota käytetään sort-komentoesimerkkien suorittamiseen työhakemistossamme tässä tehtävässä /home/$USER/Desktop/tecmint".

Vaihtoehto '-e' alla olevassa komennossa mahdollistaa kenoviivan tulkinnan ja /n käskee echo-komentoa kirjoittamaan jokaisen merkkijonon uudelle riville.

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

2. Näytä tiedoston sisältö

Ennen kuin aloitamme sort-komennolla, katsotaanpa tiedoston sisältöä ja miltä se näyttää käyttämällä seuraavaa cat-komentoa.

cat tecmint.txt

3. Tiedoston sisällön lajittelu

Komentoa "sort tecmint.txt" käytetään tiedoston rivien järjestämiseen nousevaan aakkosjärjestykseen. Jos rivejä on päällekkäisiä, se säilyttää yhden kopion jokaisesta yksilöllisestä rivistä.

sort tecmint.txt

Huomaa: Yllä oleva komento ei lajittele tekstitiedoston sisältöä, vaan näyttää vain lajitellun tulosteen päätteessä.

4. Lajiteltu tulosteen uudelleenohjaus uuteen tiedostoon

Seuraavaa komentoa käytetään tekstitiedoston "tecmint.txt" rivien lajitteluun aakkosjärjestykseen ja ohjaa sitten lajiteltu tulos uuteen tiedostoon nimeltä "sorted.txt". ", mikä tarkoittaa, että alkuperäinen tiedosto pysyy ennallaan ja lajiteltu sisältö tallennetaan erilliseen tiedostoon.

Tarkista sisällön käyttämällä cat-komentoa.

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

5. Tiedoston sisällön lajittelu käänteiseen järjestykseen

Seuraavaa komentoa käytetään lajittelemaan tekstitiedoston "tecmint.txt" rivit käänteiseen järjestykseen, mikä tarkoittaa, että se järjestää rivit laskevaan aakkosjärjestykseen ja lajiteltu tulos ohjataan sitten uuteen tiedosto nimeltä "reversesorted.txt"

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

6. Tiedostojen ja hakemistojen luettelon tallentaminen

Seuraavaa komentoa käytetään luettelemaan käyttäjän kotihakemiston ("/home/$USER") sisältö yksityiskohtaisessa pitkän muodon näkymässä ls-komennolla ja sitten se ohjaa tämän hakemistoluettelon tekstitiedosto nimeltä "lsl.txt", joka sijaitsee käyttäjän työpöydällä, erityisesti "tecmint" -hakemistossa.

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

Nyt tutkimme esimerkkejä sisällön lajittelusta muiden kenttien kuin oletusalkumerkkien perusteella.

7. Lajittele "Tiedoston sisältö toisen kentän perusteella".

Seuraavaa komentoa käytetään lajittelemaan lsl.txt-tiedoston sisältö kunkin rivin toisen kentän arvojen perusteella. Vaihtoehto '-n' ilmaisee numeerista lajittelua ja käsittelee toista kenttää numeroina tekstin sijaan.

Vaihtoehto '-k2' määrittää, että haluamme lajitella toisen kentän perusteella. Suorittamalla tämän komennon saat lajitellun luettelon lsl.txt-tiedoston riveistä. Lajittelukriteerit ovat kunkin rivin toisen kentän numeeriset arvot.

sort -nk2 lsl.txt

8. Tiedoston sisällön lajittelu yhdeksännen kentän perusteella

Seuraavaa komentoa käytetään lajittelemaan lsl.txt-tiedoston rivit kunkin rivin yhdeksännen kentän arvojen perusteella nousevassa järjestyksessä. Vaihtoehto '-k9' määrittää, että lajittelu tulee tehdä yhdeksännen kentän perusteella.

sort -k9 lsl.txt

9. Lajittele tiedostot tiedoston koon mukaan

Seuraava komento yhdistää ls- ja sort-komennot listatakseen käyttäjän kotihakemiston sisällön pitkässä luettelomuodossa ja ohjaa sitten hakemistoluettelon 'sort -nk5', joka lajittelee luettelon viidennen sarakkeen arvojen perusteella, joka edustaa tiedostokokoja.

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

10. Päällekkäisten rivien poistaminen tiedostosta

Seuraava komento lajittelee tecmint.txt-tiedoston rivit nousevaan aakkosjärjestykseen ja poistaa päällekkäiset rivit käyttämällä '-u'-vaihtoehtoa, joka tarkoittaa "ainutlaatuinen”, ja se varmistaa, että yksilölliset rivit säilyvät lajitetussa tulosteessa.

cat tecmint.txt
sort -u tecmint.txt

Säännöt tähän mennessä (mitä olemme noudattaneet):

  • Numeroilla alkavat rivit ovat suositeltavia luettelossa ja ne ovat yläreunassa, kunnes toisin määritellään (-r).
  • Pienillä kirjaimilla alkavat rivit ovat suositeltavia luettelossa ja ne sijaitsevat yläreunassa, kunnes toisin määritellään (-r).
  • Sisältö on listattu sanakirjassa olevien aakkosten esiintymisen perusteella, kunnes toisin määritellään (-r).
  • Lajittele-komento käsittelee oletusarvoisesti jokaista riviä merkkijonona ja lajittelee sen sen mukaan, kuinka sanakirjassa esiintyy aakkosia (ensisijaisesti numeerinen; katso sääntö – 1), kunnes toisin määritellään.

11. Hakemistoluettelon uudelleenohjaus tiedostoon

Seuraava komento luettelee käyttäjän kotihakemiston sisällön pitkässä muodossa, mukaan lukien piilotetut tiedostot ja hakemistot, ja sitten se ohjaa hakemistoluettelon tekstitiedostoon nimeltä lsla.txt, joka sijaitsee käyttäjän työpöydällä tecmint-hakemistoon.

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

Ls-komennon tuntevat ymmärtävät, että 'ls -lA' vastaa komentoa 'ls -l' plus piilotiedostot. Tämän seurauksena suurin osa näiden kahden komennon sisällöstä on sama.

12. Tiedostojen sisällön lajittelu

Seuraava komento lajittelee kahden tekstitiedoston, lsl.txt ja lsla.txt, sisällön nousevaan aakkosjärjestykseen ja yhdistää ja näyttää lajitellun sisällön terminaali.

sort lsl.txt lsla.txt

Huomaa tiedostojen ja kansioiden toistuminen.

13. Päällekkäisten rivien poistaminen tiedostosta

Seuraava komento yhdistää ja lajittelee kahden tekstitiedoston, lsl.txt ja lsla.txt, sisällön nousevaan aakkosjärjestykseen ja poistaa päällekkäiset rivit käyttämällä '-u' -vaihtoehto, joka varmistaa, että yksilölliset rivit säilyvät lajitetussa tulosteessa.

sort -u lsl.txt lsla.txt

Huomaa, että kaksoiskappaleet on jätetty pois tulosteesta. Lisäksi voit tallentaa tulosteen uuteen tiedostoon ohjaamalla sen uudelleen.

14. Tulosten lajittelu useiden kenttien mukaan mukautetun erottimen avulla

Seuraava komento yhdistää ls- ja sort-komennot listatakseen käyttäjän kotihakemiston sisällön pitkässä muodossa ja ohjaa sitten hakemistoluettelon hakemistoon 'sort" -komento, joka lajittelee tulosteen tiettyjen sarakkeiden ja kenttien perusteella.

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

Tässä on komennon erittely:

  • -t "," – määrittää, että pilkkua (",") käytetään kentän erottimena.
  • -nk2,5 – ilmaisee lajittelun numeroarvon perusteella sarakkeissa 2–5, jotka yleensä edustavat käyttöoikeuksia ja omistajuustietoja.
  • -k9 – lajittelee tuloksen edelleen yhdeksännen sarakkeen perusteella, joka edustaa tiedostokokoja.

Tässä kaikki tältä erää. Seuraavassa artikkelissa perehdymme yksityiskohtaisempiin esimerkkeihin lajittelukomennosta sinulle.

Jatka jakamista, kommentoimista, tykkäämistä ja auta meitä tavoittamaan laajempi yleisö.