Weboldal keresés

7 érdekes Linux „sort” parancspélda – 2. rész


Legutóbbi cikkünkben a „rendezés” parancs különféle példáival foglalkoztunk. Ha lemaradtál, az alábbi linken utolérheted. Ebben a bejegyzésben onnan folytatjuk, ahol az előző cikkben abbahagytuk, hogy kitérjünk a parancs többi vonatkozására. Így a két cikk együtt átfogó útmutatóként szolgál a Linux „sort” parancsához.

Mielőtt továbblépnénk, hozzon létre egy „month.txt” nevű szöveges fájlt, és töltse fel az alább megadott adatokkal.

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

15. Fájltartalom rendezése hónapok szerint

A következő parancs a „month.txt” fájl tartalmát időrendi sorrendbe rendezi a hónap rövidítése vagy neve alapján a '-M' opció használatával, amely a következőt utasítja: 'sort' paranccsal, hogy az adatokat dátumként kezelje és aszerint rendezze.

sort -M month.txt

16. A kimenet rendezése fájlméret szerint ember által olvasható formátumban

A következő parancs az „ls” és a „sort” parancsot kombinálja két feladat végrehajtásához. Először hosszú formátumban listázza ki a felhasználó saját könyvtárának tartalmát, majd ezt a könyvtárlistát a 'sort' parancshoz vezeti, hogy a fájlméreteket ember által olvasható formátumban nyomtatja ki, megkönnyítve a legnagyobb és legkisebb fájlok azonosítását. a könyvtárat.

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

17. A rendezett fájlok konzisztenciájának ellenőrzése

Az előző cikkben két szövegfájlt hoztunk létre: „sorted.txt” a 4. példában és „lsl.txt” a 6. példában. Tudjuk, hogy „ A sorted.txt" már rendezve van, míg az "lsl.txt" nincs.

Mindkét fájl rendezési állapotának ellenőrzéséhez a „sort” parancsot használjuk, amely lehetővé teszi számunkra annak ellenőrzését, hogy a „sorted.txt” a megfelelő sorrendben marad-e, és hogy az „lsl.txt” rendezést igényel-e.

sort -c sorted.txt

Ha a 0 értéket adja vissza, az azt jelenti, hogy a fájl rendezve van, és nincs ütközés.

sort -c lsl.txt

18. Határolók kezelése, ha nem használ szóközt a fájlban

Ha a szavak közötti elválasztó (elválasztó) szóköz, a ’rendezés’ parancs automatikusan új szóként értelmezi a vízszintes szóköz utáni bármit. De mi történik, ha a határoló nem szóköz?

Vegyünk egy szöveges fájlt, amelynek tartalma a szóközön kívül bármi mással van elválasztva, például '|' vagy '\' vagy '+' vagy '.' vagy ...

Hozzon létre egy szöveges fájlt, amelyben a tartalmat + választja el. A cat paranccsal ellenőrizze a fájl tartalmát.

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

Most rendezze ezt a fájlt az 1. mező alapján, amely numerikus.

sort -t '+' -nk1 delimiter.txt

A második a 4. mezőn alapul, amely nem numerikus.

Ha a határoló jel Tab, a '+' helyett használhatja a $'\t' kifejezést, ahogy a fenti példában is látható.

19. A kimenet véletlenszerű rendezése fájlméret szerint

Rendezze az ls -l parancs kimenetét a saját könyvtárához az ötödik oszlop alapján, amely az „adatmennyiséget” jelöli, véletlenszerű sorrendben.

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

Valahányszor futtatja a fenti szkriptet, valószínűleg más eredményt kap, mivel az eredmény véletlenszerűen jön létre.

Amint az a legutóbbi cikk Szabály száma – 2 részéből kiderül, a rendezés parancs a kisbetűkkel kezdődő sorokat részesíti előnyben a nagybetűkkel szemben. Ellenőrizze a 3. példát is az utolsó cikkben, ahol a „laptop” karakterlánc a „LAPTOP” karakterlánc előtt jelenik meg.

20. Az alapértelmezett rendezési beállítások felülbírálása

Hogyan lehet felülírni az alapértelmezett rendezési beállításokat? Mielőtt felülírhatnánk az alapértelmezett rendezési beállításokat, exportálnunk kell az 'LC_ALL' környezeti változót 'C'-ba.

Ehhez futtassa az alábbi kódot a parancssorból.

export LC_ALL=C

Ezután rendezze a „tecmint.txt” szövegfájlt, felülírva az alapértelmezett rendezési beállításokat.

sort tecmint.txt

Ne felejtse el összehasonlítani a kimenetet a 3. példában elért kimenettel, és használhatja a '-f' opciót, más néven '--ignore- case', hogy jól szervezett kimenetet kapjon.

sort -f tecmint.txt

21. Két bemeneti fájl egyesítése egyetlen műveletben

Mit szólnál, ha két bemeneti fájlon futtatnád a „rendezéset”, és egy mozdulattal egyesítenéd őket?

Hozzon létre két szövegfájlt, nevezetesen a „fájl1.txt” és a „fájl2.txt” fájlt, és töltse fel őket néhány adattal. A 'file1.txt'-ben az alábbiak szerint számokat adunk hozzá. A cat paranccsal is ellenőrizzük a fájl tartalmát

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

És töltse fel a második fájlt (file2.txt) néhány adattal mint.

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

Most rendezze és csatlakoztassa mindkét fájl kimenetét.

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

Következtetés

Összefoglalva, ez a cikk a Linux „sort” parancsának különféle szempontjait vizsgálta. Kezdtük az alapvető ábécé szerinti rendezéssel, belevágtunk a numerikus és dátum alapú rendezésbe, és még az egyéni határolókat is érintettük. Azt is megtanultuk, hogyan bírálhatjuk felül az alapértelmezett rendezési beállításokat igényeinknek megfelelően.

Ezen túlmenően megvitattuk azokat a technikákat, amelyek segítségével ellenőrizhető, hogy egy fájl már rendezve van-e, és több bemeneti fájl esetén kombinálható a „rendezés” művelet. Az itt megszerzett tudás birtokában egy hatékony eszköz áll rendelkezésére az adatok hatékony rendezéséhez és rendezéséhez Linux környezetben.

Reméljük, hogy ez a cikk szemléletes és hasznos volt a parancssori erőfeszítései során. Folytassa a felfedezést, tanuljon és sajátítsa el a „rendezés” művészetét, hogy javítsa Linux-készségeit.