Naučte sa Linux

Príkaz Linux awk s 10 príkladmi

Príkaz Linux awk s 10 príkladmi

Počítačové systémy sa vždy používali na analýzu cenných údajov uložených v jednoduchých textových súboroch. Samotné počítačové systémy sú zase spravované prostredníctvom protokolových súborov. To, čo je v týchto dvoch situáciách potenciálne bežné, je to, že obsahujú veľké množstvo údajov, ktoré je potrebné pred samotným načítaním údajov zjednodušiť; inak je to len mätúce.

Ak napríklad čítate niektoré údaje usporiadané do tabuľky, chcete nejaké stĺpce, iné nie.

Táto požiadavka bola strašná už v dnešnej dobe, a preto GNU Project obsahuje úžasný nástroj, ktorý pomáha používateľom filtrovať a extrahovať údaje pre lepší zážitok. Tento nástroj je AWK.

História

AWK je vlastne programovací jazyk, ktorý sa venuje spracovaniu textu. Používa sa na extrakciu údajov v konkrétnych vzoroch. V 70. rokoch ho vyvinuli laboratóriá Bell Labs, Alfred Aho, Peter Weinberger a Brian Kernighan (z iniciálok ich priezvisk vzniklo meno). Vývoj awk sa tým nezastavil. V roku 1985 bola predstavená nová verzia, ktorá priniesla nové zmeny v príkaze awk, vrátane schopnosti zvládnuť viac vstupných tokov, vypočítaných regulárnych výrazov, funkcií definovaných používateľom a oveľa viac! Stručne povedané, aktualizácia z neho urobila výkonnejší programovací jazyk.

Aplikácia Awk má inú implementáciu. Paul Rubin v roku 1986 napísal gawk, aby zabezpečil správnu implementáciu, ktorá ponúka štandardný prístup. S novším awk to fungovalo dobre.

Okrem toho boli v roku 1989 System V Release pridané nové funkcie. Vývojári vylepšili aj jeho temné stránky, vďaka čomu ho mohli programátori a používatelia lepšie používať. Posledná zmena nastala v roku 1997, keď awk zaznamenal prístup k sieti - poskytujúci používateľom možnosť riešiť problémy na diaľku.

Posledné prepísanie urobené v roku 2011, keď John Haque prepísal vnútornosti gawk.

Čo môžete robiť s AWK

Teraz by už malo byť čosi jasné, čoho je AWK schopná. Je to univerzálny skriptovací jazyk, ktorý vám umožní spracovávať text. Pokročilí používatelia ho môžu tiež použiť na analýzu a tvorbu prehľadov.

AWK nie je ako iné programovacie jazyky, pretože je riadený dátami, a nie procedurálnym programovacím jazykom. To znamená, že ho môžete efektívne použiť na vykonávanie akcií proti zadávaniu textu. Stručne povedané, môžete ho použiť na transformáciu údajov, ich vkladanie a tiež ich odosielať ako štandardný výstup.

Stručne povedané, môžete použiť AWK na vykonávanie jednoduchých operácií, ako napríklad rozdelenie každého vstupného riadku na polia, skenovanie súboru po riadkoch, vykonávanie akcií na zhodných riadkoch atď! Príkaz awk je tiež užitočný pre správy formátované do procedúr a transformuje dátové súbory. Okrem toho tiež získate prístup k programovacím konštrukciám, ako sú podmienené a slučky, reťazcové a aritmetické operácie a výstupné riadky formátu.

Ako funguje awk

V tejto časti sa dozvieme, ako awk funguje. Je dôležité sa naučiť, že awk má rôzne implementácie. Aby sme sa uistili, že sme na rovnakej stránke, prediskutujeme a použijeme implementáciu GNU - ktorá je ľudovo známa ako gawk. Vo väčšine prípadov je gawk spojený so tlmočníkom awk.

Aby sme dobre porozumeli, musíme najskôr porozumieť záznamom a poliam.

Je dobre známe, že awk dokáže spracovať textové streamy a dátové súbory. Na spracovanie údajov je vstup rozdelený na polia a záznamy. Aby sa zabezpečilo, že awk nebude ohromený, spracuje sa kedykoľvek jeden záznam, kým sa nedosiahne koniec vstupu. Ďalej sú záznamy ďalej rozdelené na jednoduché oddiely pomocou oddeľovača záznamov pomocou znakov. Každý záznam je tiež oddelený pomocou znakov nového riadku. To znamená, že každý riadok možno označiť ako záznam.

Môžete si zvoliť nastavenie nového oddeľovača záznamov pomocou premennej RS.

Ďalej nasleduje oddeľovač súborov. Každý záznam má ako obvykle polia, ktoré sa oddeľujú pomocou oddeľovača polí. Oddeľovačom poľa môžu byť medzery, tabulátory, znaky nového riadku a medzera. Každé pole je tiež odkazované pomocou symbolu $, zatiaľ čo číslo poľa začína 1. To znamená, že prvé pole možno označiť ako 1 dolár, zatiaľ čo druhé pole je označené ako 2 doláre. Týmto spôsobom možno n-té pole označiť ako $ nf.

Program awk

Druhým aspektom awk je program awk. Ak chcete pracovať s awk, musíte napísať program, ktorý umožní príkazu vykonať alebo spracovať text. Program awk ponúka veľa funkcií pomocou pravidiel a funkcií definovaných používateľom. Pravidlá fungujú s dvojicou akcií alebo jedným vzorom a pravidlá sú oddelené bodkočiarkami alebo novým riadkom.

V prípade, že vás zaujíma, program awk bude vyzerať ako nižšie.

vzor action vzor action… 

Stručne povedané, program awk funguje tak, že sa záznamy zhodujú na základe vzorov. Ak sa vzor v zázname nájde, spracuje ho. Ak nie, potom sa celý záznam zhoduje, aby sa zabezpečilo, že sa niečo zhoduje na základe pravidiel.

Príklady príkazov awk

Teraz, keď dobre rozumieme príkazu awk a jeho fungovaniu, je čas, aby sme si pozreli niektoré príklady príkazu awk.

Ak ste awk nikdy predtým nepoužívali, možno budete chcieť vedieť, že awk je možné použiť s nasledujúcimi možnosťami:

súbor programu awk options

Možnosti, ktoré môžete použiť v awk, sú nasledujúce:

Príklad 1: Čítanie skriptov AWK

Jedným z najbežnejších spôsobov použitia awk je čítanie skriptov. Ako užívateľ systému Linux môžete vytvoriť awk skript pomocou jednoduchých úvodzoviek.

Ak to chcete urobiť, musíte do terminálu napísať nasledujúci príkaz.

$ awk 'print "Vitajte na stránkach Hello, World - príručka AWK"'

V príklade vyššie sa zadaný text vráti na samotnú obrazovku. Príkaz bude pokračovať v vykonávaní, kým ho neukončíte stlačením kombinácie klávesov CTRL + D.

Príklad 2: Používanie viacerých príkazov

Ďalším bežným používaním awk je použitie viacerých príkazov. Ako používateľ budete možno chcieť spojiť dva príkazy awk do jedného, ​​aby ste dosiahli požadovaný výsledok. V tomto príklade vygenerujeme reťazec a potom nahradíme druhé slovo v reťazci novým vstupom.

$ echo "Hello World" | awk '$ 2 = "Vesmír; tlačiť $ 0"'

Vo vyššie uvedenom príklade sme ako prvé zareagovali na terminál „Hello, World“. Ďalej sme zreťazili ďalší príkaz awk, kde sme nahradili druhé slovo vesmírom - a potom na výstup priviedli reťazec, ktorý je Hello Universe.

Príklad 3: Použitie premennej

Premenné vám umožňujú ukladať informácie a pristupovať k nim. Ak ste programovacie jazyky používali už skôr, určite o nich viete. V prípade awk ho použijete na spracovanie textových súborov. Pomocou premenných máte prístup k určitým údajovým poliam v súbore, ako je uvedené nižšie.

Za týmto účelom sme vytvorili nový textový súbor mynewfile, do ktorého vložíme niekoľko náhodných, ale krásnych riadkov.

Ďalej musíte spustiť príkaz, ako je uvedené nižšie.

awk 'print $ 1' môj nový súbor

Ako vidíte, na výstupe je tá konkrétna premenná, ktorá ukazuje dané pole zo súboru. Mali by ste tiež vidieť chybu, ktorú som urobil.

Príklad 4: Predbežné spracovanie AWK

Príkazom awk môžete pridať predspracovanie. Ak to chcete urobiť, musíte použiť kľúčové slovo BEGIN.

Ak čítate pozorne, vytvorili sme nový súbor vyššie. Skúsme pomocou awk predspracovania predviesť obsah súboru.

Príkaz je uvedený nižšie.

awk 'awk BEGIN print "Obsah súboru:"> print $ 0', mynewfile

Vyššie uvedený príklad obrazovky nie je správny. Namiesto „BEGIN“ som použil „Begin“, a preto nevidíte vykonanie príkazu na tlač. Nechám to na vás, aby ste si vyskúšali, ako dopadnú vaše výsledky!

Príklad 5: Čítanie skriptu zo súboru

Tento je zložitý. Tu môžete použiť awk skript na načítanie súboru.

Vytvoríme nový skript, ktorý obsahuje nasledovné.

print $ 1 "vesmír začína na" $ 6 "

Súbor sme uložili ako novinový článok.

Teraz na termináli spustite nasledujúci príkaz.

$ awk -F: -f novinka / etc / passwd

Fascinujúce, správne!

Príklad 6: AWK Dodatočné spracovanie

Ďalej sa pozrieme na následné spracovanie AWK. Funguje to podobne ako pri predbežnom spracovaní, ale pri následnom spracovaní sa tentokrát používa príkaz KONIEC.

$ awk 'BEGIN print "Obsah súboru sa začína teraz:">> print $ 0>> END print "File končí"' mynewfile

Príklad 7: Užívateľom definované premenné

Premenné môžete použiť aj v príkaze awk bez použitia čísla alebo dolára.

Nižšie je uvedený príklad.

$ awk 'BEGIN test = "Vitajte v úžasnej rodine Linuxu FossLinux" test tlače'

Príklad 8: Vstavané funkcie

Príkazy awk prídu vhod aj s ich vstavanými funkciami. Môžete napríklad použiť matematické funkcie a tiež reťazcové funkcie.

$ awk 'ZAČÍNAME x - "fossLinux"; print toupper (x) '
$ awk 'ZAČIATOK x = exp (35); tlačiť x '

Príklad 9: Formátovanie tlače

Môžete tiež naformátovať funkciu printf dodávanú s awk. Existuje veľa modifikátorov, ktoré môžete použiť. Môžete napríklad použiť c na vytlačenie ako reťazec; môžete tiež použiť d pre celočíselnú hodnotu atď.

$ awk 'ZAČÍNAME x = 200 * 200 printf "Výsledok je:% e \ n", x'

Príklad 10: Štruktúrované príkazy

Môžete tiež použiť štruktúrované príkazy, napríklad if, else, while alebo for loop. Pozrime sa na nasledujúci príklad príkazu if.

$ awk 'if ($ 1> 20) tlačiť $ 2' môj nový súbor

Záver

To nás vedie na koniec nášho tutoriálu príkazov awk. Považovali ste to teda za užitočné a budete ich používať pri svojej práci?? Komentujte nižšie a dajte nám vedieť.

Hry SuperTuxKart pre Linux
SuperTuxKart pre Linux
SuperTuxKart je vynikajúci titul navrhnutý tak, aby vám priniesol zážitok z hry Mario Kart zadarmo na vašom systéme Linux. Je to dosť náročné a zábavn...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...
Hry 0 A.D. Výukový program
0 A.D. Výukový program
Z mnohých strategických hier je tu 0 A.D. dokáže vyniknúť ako komplexný titul a veľmi hlboká, taktická hra napriek tomu, že je otvoreným zdrojom. Vývo...