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.