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.