Tanuljon Linuxot

Linux awk parancs 10 példával

Linux awk parancs 10 példával

Számítógépes rendszereket mindig használtak az egyszerű szöveges fájlokban tárolt értékes adatok elemzésére. Viszont a számítógépes rendszereket is naplófájlok kezelik. Ami ebben a két helyzetben potenciálisan közös, az az, hogy rengeteg adatot tárolnak bennük, amelyet gyakran egyszerűsíteni kell az adatok tényleges elolvasása előtt; különben csak zavaró.

Például, ha néhány adatot táblázatos formában olvas, néhány oszlopot szeretne, másokat nem.

Ez a követelmény még a nap folyamán is szörnyű volt, következésképpen a GNU Project egy csodálatos eszközt tartalmaz, amely segít a felhasználóknak az adatok szűrésében és kinyerésében a jobb élmény érdekében. Ez az eszköz az AWK.

Történelem

Az AWK valójában egy programozási nyelv, amelyet a szövegfeldolgozásnak szentelnek. Specifikus mintákban az adatok kinyerésére szolgál. Az 1970-es években fejlesztette ki a Bell Labs, Alfred Aho, Peter Weinberger és Brian Kernighan (vezetéknevük kezdőbetűi születték a nevet). Az awk fejlesztése itt nem állt meg. 1985-ben egy új verzió került bevezetésre, amely új változásokat hozott az awk parancsban, többek között több bemeneti adatfolyam kezelésére, kiszámított reguláris kifejezésekkel, felhasználó által definiált funkciókkal és még sok mással! Röviden: a frissítés erősebb programozási nyelvvé tette.

Az Awk megvalósítása más. A megfelelő megvalósítás biztosítása érdekében, amely szabványos megközelítést kínál, Paul Rubin 1986-ban írta a gawk-t. Jól működött az újabb awk-val.

Ettől eltekintve az 1989-es System V kiadás új funkciókat adott hozzá. A fejlesztők fejlesztették a sötét zugokat is, így a programozók és a felhasználók jobban használhatják. A legutóbbi változás 1997-ben történt, amikor az awk látta a hálózati hozzáférést - ezáltal a felhasználók képesek voltak a problémákat távolról megoldani.

A legutóbbi átírás 2011-ben történt, amikor John Haque átírta a gawk belsejét.

Az AWK-val megtehető dolgok

Mostanra valamennyire egyértelműnek kell lennie, mire képes az AWK. Ez egy általános célú szkriptnyelv, amely lehetővé teszi a szövegfeldolgozás kezelését. A haladó felhasználók elemzéshez és jelentésekhez is használhatják.

Az AWK nem olyan, mint más programozási nyelvek, mivel adatközpontú, nem pedig eljárási programozási nyelv. Ez azt jelenti, hogy hatékonyan használhatja a szövegbevitel elleni műveletek végrehajtására. Röviden: felhasználhatja adatok átalakítására, bevitelükre, és standard kimenetként is elküldésre.

Röviden: az AWK segítségével egyszerű műveleteket hajthat végre, például feloszthatja az egyes beviteli sorokat mezőkre, fájlokat vizsgálhat soronként, műveleteket hajthat végre egyező vonalakon stb! Az awk parancs hasznos az eljárás formázott jelentéseiben és az adatfájlok átalakításában is. Ezenkívül hozzáférést kap olyan programozási konstrukciókhoz is, mint a feltételes & ciklusok, a string- és aritmetikai műveletek, valamint a kimeneti sorok formázása.

Hogyan működik az awk

Ebben a részben megtudjuk, hogyan működik az awk. Fontos megtanulni, hogy az awk megvalósítása különböző. Annak biztosítása érdekében, hogy ugyanazon az oldalon legyünk, megvitatjuk és felhasználjuk a GNU implementációt - amely közismert nevén gawk. A legtöbb esetben a gawk szimbolikusan kapcsolódik az awk tolmácshoz.

A megfelelő megértéshez először meg kell értenünk a Rekordokat és a mezőket.

Köztudott, hogy az awk képes szöveges adatfolyamokat és adatfájlokat feldolgozni. Az adatok feldolgozásához a bemenet mezőkre és rekordokra oszlik. Annak biztosítása érdekében, hogy az awk ne legyen túlterhelt, egy rekordot dolgoznak fel bármikor, amíg a bemenet végéig el nem éri. Ezenkívül a rekordokat további részekre bontják, karaktereket használó rekordelválasztóval. Ezenkívül minden rekordot új sor karakterek választanak el. Ez azt jelenti, hogy minden sor rekordnak nevezhető.

Választhat egy új rekordelválasztót az RS változó használatával.

Ezután következik az iktatott elválasztó. Szokás szerint minden rekordnak vannak mezõi, és a mezõelválasztó segítségével különítik el õket. A mezőelválasztó lehet szóköz, tabulátorok, újsoros karakterek és szóköz. Ezenkívül minden mezőre a $ szimbólummal hivatkozunk, míg a mező száma 1-vel kezdődik. Ez azt jelenti, hogy az első mezőt $ 1-nek, míg a második mezőt $ 2-nek jelölhetjük. Így az n-edik mezőt $ nf-nek jelölhetjük.

Az awk program

Az awk második aspektusa az awk program. Ha az awk-val akar dolgozni, akkor írnia kell egy programot, amely lehetővé teszi a parancs számára a szöveg végrehajtását vagy feldolgozását. Az awk program sok funkcionalitást kínál a szabályok és a felhasználó által definiált funkciók használatával. A szabályok cselekvési párral vagy egy mintával működnek, és a szabályokat pontosvesszőkkel vagy új vonallal választják el.

Ha kíváncsi vagy, egy awk program az alábbiak szerint fog kinézni.

minta action minta action… 

Röviden, az awk program úgy működik, hogy a rekordok egyeznek a minták alapján. Ha a minta megtalálható a rekordban, akkor azt feldolgozza. Ha nem, akkor a teljes rekordot egyeztetjük, hogy megbizonyosodjunk arról, hogy valami megfelel-e a szabályoknak.

awk Parancspéldák

Most, hogy jól megértettük az awk parancsot és működését, itt az ideje, hogy megnézzük az awk parancs néhány példáját.

Ha még soha nem használta az awk-t, érdemes tudni, hogy az awk az alábbi lehetőségekkel használható:

awk opciók programfájl

Az awk-vel együtt használható opciók a következők:

1. példa: Olvassa el az AWK parancsfájlokat

Az awk használatának egyik leggyakoribb módja a szkriptek olvasása. Linux felhasználóként létrehozhat egy awk szkriptet az egyetlen idézőjel segítségével.

Ehhez be kell írnia a következő parancsot a terminálba.

$ awk 'print "Üdvözöljük a Hello, World - AWK bemutatóban"'

A fenti példában, amit beír, az visszatér a képernyőre. A parancs a CTRL + D billentyűkombinációval addig hajt végre, amíg be nem fejezi.

2. példa: Több parancs használata

Az awk másik gyakori használata több parancs használata. Felhasználóként érdemes két awk parancsot egyesíteni egybe a kívánt eredmény elérése érdekében. Ebben a példában egy karakterláncot adunk ki, majd a karakterlánc második szavát új bemenettel helyettesítjük.

$ echo "Hello World" | awk '$ 2 = "Univerzum; $ 0 nyomtatása"'

A fenti példában először a „Hello, World” -t visszhangoztuk a terminálhoz. Ezután összefűztünk egy másik awk parancsot, ahol a második szót lecseréltük az Univerzumra - majd végül kiadtuk a húrot, ami a Hello Universe.

3. példa: A változó használata

A változók segítségével információkat tárolhat és hozzáférhet hozzájuk. Ha korábban használt programozási nyelveket, akkor biztosan tud róla. Az awk esetében szövegfájlok feldolgozására használja. A változók használatával a fájl egyes adatmezőihez az alábbiak szerint férhet hozzá.

Erre a célra létrehoztunk egy új szövegfájlt, a mynewfile fájlt, ahova néhány véletlenszerű, de gyönyörű sort írunk be.

Ezután futtatnia kell a parancsot, az alábbiak szerint.

awk 'print $ 1' myfájl

Amint láthatja, azt a változót adja ki, amely azt a mezőt mutatja a fájlból. Látnia kell a hibát, amit elkövettem.

4. példa: AWK előfeldolgozás

Az awk paranccsal hozzáadhatja az előfeldolgozást. Ehhez a BEGIN kulcsszót kell használnia.

Ha figyelmesen olvas, fent létrehoztunk egy új fájlt. Próbáljuk meg használni az awk előfeldolgozást a fájl tartalmának bemutatásához.

A parancs az alábbiak szerint történik.

awk 'awk BEGIN print "A fájl tartalma:"> print $ 0', mynewfile

A fenti képernyőkép nem megfelelő. A „BEGIN” szót a „BEGIN” helyett használtam, ezért nem látja a nyomtatott utasítás végrehajtását. Ezt meghagyom neked, hogy kipróbálja és megnézze, hogyan alakul az eredmény!

5. példa: Parancsfájl olvasása fájlból

Ez trükkös. Itt használhatja az awk szkriptet egy fájl elolvasásához.

Létrehozunk egy új szkriptet, amely a következőket tartalmazza.

print $ 1 "univerzum" $ 6 "-nál kezdődik

A fájlt újságként mentettük el.

Most futtassa a következő parancsot a terminálon.

$ awk -F: -f újság / etc / passwd

Lenyűgöző, igaz!

6. példa: AWK utófeldolgozás

Ezután megnézzük az AWK utófeldolgozását. Az előfeldolgozáshoz hasonlóan működik, de ezúttal az utófeldolgozás az END parancsot használja.

$ awk 'BEGIN print "A fájl tartalma most kezdődik:">> print $ 0>> END print "A fájl véget ér"' mynewfile

7. példa: Felhasználó által definiált változók

Számos vagy dollárjel használata nélkül is használhat változókat az awk parancsban.

Az alábbiakban bemutatunk egy példát.

$ awk 'BEGIN test = "Üdvözöljük a FossLinux Awesome Linux család" nyomtatási tesztjén "'

8. példa: Beépített funkciók

Az awk parancsok a beépített funkcióikkal is jól jönnek. Használhat például matematikai függvényeket és String függvényeket is.

$ awk 'BEGIN x - "fossLinux"; print toupper (x) '
$ awk 'BEGIN x = exp (35); nyomtatás x '

9. példa: A nyomtatás formázása

Formázhatja az awk-hez tartozó printf funkciót is. Számos módosító használható. Például a c segítségével karakterláncként nyomtathat ki; d-t is használhat egész számra stb.

$ awk 'BEGIN x = 200 * 200 printf "Az eredmény:% e \ n", x'

10. példa: Strukturált parancsok

Használhat strukturált parancsokat is, például if, else, while vagy ciklushoz. Lássuk az alábbi példát az if parancsra.

$ awk 'if ($ 1> 20) $ 2' myfájl

Következtetés

Ez az awk parancs bemutatónk végére vezet. Tehát hasznosnak találta-e, és felhasználja-e a munkájához?? Hozzászólás az alábbiakban, és tudassa velünk.

Az OSD-fedvény megjelenítése teljes képernyős Linux-alkalmazásokban és játékokban
Teljes képernyős játékok lejátszása vagy alkalmazások figyelemelterelés nélküli, teljes képernyős módban történő használata elvághatja a panelen vagy ...
Az 5 legjobb játékrögzítő kártya
Mindannyian láttuk és szerettük a YouTube-on a streaming játékokat. A PewDiePie, a Jakesepticye és a Markiplier csak néhány a legnépszerűbb játékosok ...
Hogyan lehet játékot fejleszteni Linuxon
Egy évtizeddel ezelőtt nem sok Linux-felhasználó jósolta, hogy kedvenc operációs rendszerük egy napon a videojátékok népszerű játékplatformja lesz. El...