Vannak azonban olyan esetek, amikor nem szándékozik elolvasni a fájl teljes tartalmát, inkább csak a fájl egy adott részével foglalkozik. Ilyen helyzetben nagyon nem ajánlott elolvasni a teljes fájlt, mivel az extra helyet foglal el, és a feldolgozása is hosszabb időt vesz igénybe, inkább közvetlenül a fájl adott részét kell megütni. Ebben a cikkben arra törekszünk, hogy bemutassuk az „awk” parancs használatának különböző módszereit az utolsó oszlop kinyomtatásához egy fájlból.
Az „awk” parancs használatának különböző módjai az utolsó oszlop fájlból történő kinyomtatásához:
Két különböző módszer létezik, amelyek segítségével az „awk” paranccsal kinyomtathatjuk az utolsó oszlopot egy fájlból. Bár ez a két módszer felcserélhetően használható, mert végül is ugyanazt a kimenetet jelenítik meg, az első módszer azonban jobban megfelel abban a helyzetben, amikor pontosan ismeri a fájl oszlopainak számát, a második módszer pedig akkor hasznos, ha az oszlopok száma nem ismert. Vizsgáljuk meg ezeket a módszereket egyenként.
Megjegyzés: Mindkét módszer bemutatásához a Linux Mint 20-at használtuk, de szabadon választhatja ki a Linux bármelyik ízét.
1. módszer: Ha ismeri a fájl oszlopainak teljes számát:
Ez a módszer akkor használható, ha ismeri a fájl oszlopainak pontos számát e.g. 3, 5, 10 stb. A módszer bemutatásához a következő lépéseket kell végrehajtani a megadott sorrendben:
Hozzon létre egy tetszőleges nevű szövegfájlt a Home mappában. Ebben a forgatókönyvben awk-nak neveztük el.txt. Most kattintson duplán erre a fájlra a megnyitásához, és írja be az alábbi képen látható adatokat a szöveges fájlba. Összesen három különböző oszlop van, és az oszlopokat fülköz választja el egymástól. Beírhat bármilyen tetszés szerinti adatot is.
A fájl létrehozása után el kell mentenie és bezárnia. Most indítsa el a terminált a Linux Mint 20-ban a tálcán található ikonra kattintva. A Linux Mint 20 terminál szintén a következő képen látható:
Most írja be az alább említett parancsot a terminálba, majd nyomja meg az Enter billentyűt a végrehajtáshoz:
$ awk 'print $ ColNum' fájl.txtItt ki kell cserélnie a ColNum-ot az utolsó oszlop oszlopszámával. Például az általunk létrehozott szövegfájlnak összesen három oszlopa van, ami azt jelenti, hogy az utolsó oszlop oszlopszáma 3 lesz. Mivel a célunk csak a fájl utolsó oszlopának kinyomtatása, ezért a ColNum-ot 3-mal helyettesítettük. Amikor egy oszlop számát a „$” szimbólum folytatja, ez azt jelenti, hogy hozzá akarunk férni az oszlop értékeihez. Ezenkívül le kell cserélnie a „fájl” szöveget a szöveges fájl pontos nevére. Esetünkben a fájl neve awk volt.txt.
Amint megnyomja az Enter billentyűt, az awk fájl utolsó oszlopának összes értéke.A txt megjelenik a terminálon, a következő képen látható módon. Az awk parancs beolvassa ezt az oszlopot, míg a print parancs felel az értékek megjelenítéséért a terminálon.
2. módszer: Ha a fájl oszlopainak teljes száma ismeretlen:
Ezt a módszert általában akkor használják, ha nem ismeri a fájl oszlopainak teljes számát. A fájl utolsó oszlopának ezzel a módszerrel történő kinyomtatásához a következőket kell tennie:
Ugyanazt a szövegfájlt használjuk, amelyet a fenti módszerhez készítettünk. Csak annyit kell tennünk, hogy elindítjuk a terminált, majd beírjuk a következő parancsot:
$ awk 'print $ (NF)' fájl.txtItt az NF egy olyan változó, amelynek feladata kifejezetten kinyomtatni egy fájl utolsó oszlopát. Például, ha egy fájlban 10 vagy 20 vagy még több oszlop van, de nem ismeri azok pontos számát, és mégis hozzáférni akar az utolsó oszlophoz, akkor ez a változó nagyon hasznos lehet az Ön számára. Ismét le kell cserélnie a „fájl” szöveget a szöveges fájl nevére. Esetünkben, mivel ugyanazt a fájlt használtuk, mint az 1. módszer, ezért kicseréltük a fájlt.txt az awk-val.txt.
Miután beírta ezt a parancsot a terminálba, az Enter billentyű lenyomásával futtatnia kell. Észre fogja venni, hogy ennek a parancsnak a kimenete megegyezik a fenti módszerben használt parancs kimenetével.e. az évadatokat tartalmazó szövegfájl utolsó oszlopát sikeresen kinyomtatták a terminálra.
Következtetés:
Ebben a cikkben útmutatást adtunk arról, hogy csak az utolsó oszlopot kell kinyomtatni egy fájlból, miközben az „awk” parancsot használjuk. Sokkal több aspektusa van ennek a parancsnak, amelyek részletesen felfedezhetők i.e. ez a parancs más különféle parancsokkal együtt is használható más típusú kimenetek megjelenítésére. A mai vita keretein belül azonban csak az volt a célunk, hogy bemutassuk annak használatát az utolsó oszlop fájlból történő kinyomtatásához. Bemutattuk nektek ugyanannak a két különböző módját. Most már teljesen a helyzeteden múlik, hogy ezek közül melyik módszert választod követni.