7 mielenkiintoista Linuxin "sort" -komentoesimerkkiä - Osa 2


Edellisessä artikkelissamme käsittelimme useita esimerkkejä sort-komennosta. Jos unohdat sen, voit seurata alla olevaa linkkiä. Tässä viestissä jatkamme siitä, mihin edellisessä artikkelissa jäimme, kattaaksemme komennon muut näkökohdat. Tällä tavalla molemmat artikkelit toimivat yhdessä kattavana oppaana Linuxin sort-komennolle.

Ennen kuin jatkamme, luo tekstitiedosto nimeltä month.txt ja täytä se alla annetuilla tiedoilla.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Tiedoston sisällön lajittelu kuukauden mukaan

Seuraava komento lajittelee tiedoston "month.txt" sisällön kronologiseen järjestykseen kuukauden lyhenteen tai nimen perusteella käyttämällä '-M' -vaihtoehtoa, joka ohjaa 'sort"-komento käsittelee tietoja päivämääränä ja lajittelee ne sen mukaan.

sort -M month.txt

16. Tulosteiden lajittelu tiedoston koon mukaan ihmisen luettavassa muodossa

Seuraava komento yhdistää ls- ja sort-komennot suorittamaan kaksi tehtävää. Ensin se luettelee käyttäjän kotihakemiston sisällön pitkässä muodossa ja sitten se ohjaa tämän hakemistoluettelon "sort"-komentoon tulostaakseen tiedostokoot ihmisen luettavassa muodossa, mikä helpottaa suurimman ja pienimmän tiedostojen tunnistamista. hakemistosta.

ls -l /home/$USER | sort -h -k5

17. Lajiteltujen tiedostojen johdonmukaisuuden tarkistaminen

Edellisessä artikkelissa loimme kaksi tekstitiedostoa: "sorted.txt" esimerkissä numero 4 ja "lsl.txt" esimerkissä numero 6. Tiedämme, että " lajiteltu.txt on jo lajiteltu, kun taas lsl.txt ei ole.

Molempien tiedostojen lajittelutilan tarkistamiseksi käytämme sort-komentoa, jonka avulla voimme varmistaa, pysyykö sorted.txt oikeassa järjestyksessä ja vaatiiko lsl.txt lajittelua.

sort -c sorted.txt

Jos se palauttaa 0, se tarkoittaa, että tiedosto on lajiteltu eikä ristiriitaa ole.

sort -c lsl.txt

18. Erotinmerkkien käsittely, kun tiedostossa ei käytetä välilyöntejä

Jos erotin (erotin) sanojen välillä on välilyönti, sort-komento tulkitsee automaattisesti kaiken vaakasuuntaisen välilyönnin jälkeen uutena sanana. Mutta mitä tapahtuu, kun erotin ei ole välilyönti?

Harkitse tekstitiedostoa, jonka sisältö on erotettu millään muulla kuin välilyönnillä, kuten '|' tai '\' tai '+' tai '.' tai ...

Luo tekstitiedosto, jonka sisältö erotetaan +-merkillä. Tarkista tiedoston sisältö cat-komennolla.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
cat delimiter.txt

Lajittele nyt tämä tiedosto 1.-kentän perusteella, joka on numeerinen.

sort -t '+' -nk1 delimiter.txt

Toinen perustuu 4.-kenttään, joka ei ole numeerinen.

Jos erotin on sarkain, voit käyttää $'\t'-merkkiä '+' -merkin tilalla, kuten yllä olevassa esimerkissä näkyy.

19. Satunnainen lajittelu tiedoston koon mukaan

Lajittele kotihakemistosi ls -l -komennon tulos viidennen sarakkeen perusteella, joka edustaa 'tiedon määrää', satunnaisessa järjestyksessä.

ls -l /home/avi/ | sort -k5 -R 

Joka kerta kun suoritat yllä olevan skriptin, saat todennäköisesti erilaisen tuloksen, koska tulos luodaan satunnaisesti.

Kuten edellisen artikkelin kohdasta Sääntö numero – 2 käy ilmi, sort-komento suosii pienillä kirjaimilla alkavia rivejä isojen kirjainten sijaan. Tarkista myös edellisen artikkelin esimerkki 3, jossa merkkijono kannettava tietokone näkyy ennen merkkijonoa LAPTOP.

20. Lajittelun oletusasetusten ohittaminen

Kuinka ohittaa oletuslajitteluasetus? Ennen kuin voimme ohittaa oletuslajitteluasetuksen, meidän on vietävä ympäristömuuttuja 'LC_ALL' muotoon 'C'.

Voit tehdä tämän suorittamalla alla olevan koodin komentorivikehotteessa.

export LC_ALL=C

Lajittele sitten tekstitiedosto tecmint.txt ohittaen oletuslajitteluasetuksen.

sort tecmint.txt

Älä unohda verrata tulosta esimerkissä 3 saavutettuun tulokseen, ja voit myös käyttää vaihtoehtoa '-f' eli '--ignore- case' saadaksesi hyvin organisoitua tulosta.

sort -f tecmint.txt

21. Kahden syöttötiedoston yhdistäminen yhdeksi toiminnoksi

Mitä jos suorittaisit lajittele-toiminnon kahdella syöttötiedostolla ja yhdistäisit ne yhdellä kertaa?

Luodaan kaksi tekstitiedostoa, nimittäin tiedosto1.txt ja tiedosto2.txt, ja täytä ne tiedoilla. Lisäämme numerot tiedosto1.txt-tiedostoon alla olevan kuvan mukaisesti. Käytämme myös cat-komentoa tarkastaaksemme tiedoston sisällön

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

Ja täytä toinen tiedosto 'file2.txt' tiedoilla nimellä.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Lajittele ja yhdistä molempien tiedostojen tulosteet.

join <(sort -n file1.txt) <(sort file2.txt)

Johtopäätös

Lopuksi totean, että tässä artikkelissa on tutkittu Linuxin sort-komennon eri puolia. Aloitimme peruslajittelulla aakkosjärjestyksen mukaan, uskaltimme lajitella numeerista ja päivämääräpohjaista lajittelua ja käsittelimme jopa mukautettuja erottimia. Opimme myös ohittamaan oletuslajitteluasetukset tarpeidemme mukaan.

Lisäksi keskustelimme tekniikoista, joilla voidaan tarkistaa, onko tiedosto jo lajiteltu, ja lajittelu-toimintojen yhdistämisestä useille syöttötiedostoille. Täällä hankitun tiedon avulla sinulla on käytössäsi tehokas työkalu tietojen lajitteluun ja järjestämiseen tehokkaasti Linux-ympäristössä.

Toivomme, että tämä artikkeli on ollut oivaltava ja hyödyllinen komentorivityössäsi. Jatka tutkimista, oppimista ja lajittelun-taidon hallintaa parantaaksesi Linux-taitojasi.