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ö.