Poznať základné informácie o príkaze „awk“ je veľmi dôležité, pokiaľ ide o efektívne spracovanie údajov, a tento príspevok sa zaoberá kľúčovými vlastnosťami príkazu „awk“. Najprv skontrolujeme syntax:
$ awk [možnosti] [súbor]Niektoré z bežne používaných možností sú uvedené v nasledujúcej tabuľke:
Možnosť | Popis |
-F | Ak chcete určiť oddeľovač súborov |
-f | Zadajte súbor, ktorý obsahuje skript „awk“ |
-v | Priradiť premennú |
Pozrime sa na niekoľko príkladov použitia príkazu „awk“ a na ukážku som vytvoril textový súbor s názvom testFile.TXT:
1. Ako tlačiť stĺpec súboru pomocou príkazu awk?
Príkaz „awk“ možno použiť na získanie konkrétneho stĺpca textového súboru. Na vytlačenie obsahu súboru použite:
$ mačka testSúbor.TXT
Teraz na vytlačenie druhého stĺpca súboru použite:
$ awk 'print $ 2' testFile.TXT
Ak chcete vytlačiť viac ako jedno pole, použite príkaz:
$ awk 'print $ 1, $ 2, $ 3' testFile.TXT
Ak nepoužívate čiarku „,“ bude výstup bez medzier:
$ awk 'print $ 1 $ 2 $ 3 testFile.TXT
2. Ako používať regulárny výraz s príkazom awk:
Na priradenie reťazcov alebo ľubovoľného výrazu používame lomky „//“, napríklad ak chcete vytlačiť mená ľudí, ktorí študujú „históriu“, použite:
$ awk '/ History / print $ 2' testFile.TXT
Výstup jasne ukazuje, že kurz „História“ študujú iba „Sam“ a „Tommy“.
3. Ako používať relačný výraz s príkazom „awk“:
Na porovnanie obsahu konkrétneho poľa možno použiť relačný výraz. Ak chcete priradiť ľubovoľný reťazec alebo výraz k poľu, označte pole a použite operátor porovnania „~“ so vzorom uvedeným v nasledujúcom príkaze:
$ awk '$ 3 ~ / je / print $ 2' testFile.TXT
Vyššie uvedený výstup zobrazujúci každé pole v stĺpci 2 proti každému poľu, ktoré obsahuje „je“ v stĺpci 3.
Ak chcete získať opačný výstup ako vyššie uvedený príkaz, použite príkaz „! ~ ”Operátor:
$ awk '$ 3! ~ / is / print $ 2 'testFile.TXT
Pre porovnanie môžeme tiež použiť operátory ako väčšie ako „>“ a menšie ako „<” and equal “=” as well:
$ awk '$ 4> 70 tlačiť $ 2' testFile.TXT
Na výstupe boli vytlačené mená ľudí, ktorí dostali známky viac ako 70.
4. Ako používať vzor rozsahu s príkazom awk:
Na vyhľadávanie je možné použiť aj rozsah; jednoducho použite čiarku „,“ na oddelenie rozsahu, ako je uvedené v nižšie uvedenom príkaze:
$ awk '/ Joel /, / Marlene / print $ 3' testFile.TXT
Výstup zobrazuje subjekty v rozsahu od „Joel“ po „Marlene“ zo stĺpca 2. Na definovanie rozsahu môžeme použiť dvojité znamienko „==“; pozri príklad nižšie:
$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.TXT
Výstup zobrazuje mená ľudí zo stĺpca 2 pre rozsah značiek „70 až 80“ zo stĺpca 4.
5. Ako kombinovať vzor pomocou logického operátora:
Použitie logických operátorov, ako napríklad ALEBO „||“, „A&&“, vám umožňuje kombinovať vzory pre vyhľadávanie. Použite nasledujúci príkaz
$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.TXT
Vyššie uvedený príkaz vytlačí mená ľudí oproti štvrtému poľu významnejšie ako 80 a šiestemu poľu väčší ako 0.4. A podmienku spĺňajú iba dva záznamy.
6. Špeciálne výrazy príkazu awk:
Existujú dva špeciálne výrazy: „ZAČAŤ“A„KONIEC”:
ZAČÍNAME: Vykonať akciu pred spracovaním údajov
KONIEC: Vykonanie akcie po spracovaní údajov
$ awk 'BEGIN tlač „Spracovanie sa začalo“; tlačiť 2 doláre; END print “Spracovanie bolo ukončené” 'testFile.TXT
7. Užitočná zabudovaná premenná príkazu awk:
Príkaz awk má rôzne premenné, ktoré pomáhajú pri spracovaní údajov:
Variabilné | Popis |
NF | Udáva počet polí v dátach |
NR | Poskytuje číslo aktuálneho záznamu |
NÁZOV SÚBORU | Zobrazuje názov súboru, ktorý sa práve spracováva |
FS a OFS | Oddeľovač polí a oddeľovač výstupných polí |
RS a ORS | Oddeľuje záznam a výstupný oddeľovač záznamu |
Napríklad:
$ awk 'END print „Názov súboru je“ FILENAME „má“ polia „NF“ a „NR„ záznamy “' testFile.TXT
Používame „END“, ale ak použijete „BEGIN“, výstup dá 0 polí a 0 záznamov.
8. Ako zmeniť oddeľovač záznamu:
Predvolený oddeľovač v zázname je zvyčajne medzera; ak je čiarka „,“ alebo bodka „.“Ako oddeľovač polí, potom spolu s oddeľovačom použite možnosť„ FS “.
Poďme mať ďalší súbor, v ktorom sú dátové polia oddelené čiarkami „:“:
$ mačka testFile2.TXT$ awk 'BEGIN FS = “:” tlačiť $ 2' testFile2.TXT
Pretože oddeľovač súboru je dvojbodka, ale príkaz „awk“ je pre súbory ako tento dokonca výhodný, jednoducho použite voľbu „FS“.
„-F“ možno tiež použiť:
$ awk -F “:” 'print $ 2' testFile2.TXT
Predvolený oddeľovač záznamu je „nový riadok“ a na nastavenie oddeľovača záznamu na „:“ použite:
$ awk 'BEGIN RS = “:” tlačiť $ 1' testFile2.TXT
9. Akčné akcie:
Akcie awk sú malé programy, ktoré sú obklopené zátvorkami „“ a majú viac ako jeden príkaz oddelený bodkočiarkami „;“.
Najpoužívanejším príkazom s príkazom „awk“ je príkaz „print“. Napríklad na vytlačenie textu s každým záznamom použite textový reťazec v úvodzovkách:
$ awk '„Toto je pole,“ $ 2' testovací súbor.TXT
Urobme jednoduchú operáciu súčtu pomocou awk:
$ awk 'sum + = $ 4 END printf “% d \ n”, sum' testFile.TXT
10. Vytvorenie awk programu:
Začnime programovaním „awk“, nižšie uvedené programovanie jednoducho robí násobenie:
ZAČAŤi = 2
zatiaľ čo (j<4)
tlač „Násobenie 2 s“ j „je“ i * j;
j++
Uložte program pod názvom „myCode.awk”A spustíte ho, otvorte terminál a zadajte:
$ awk -f myCode.awkZáver:
Príkaz „awk“ je užitočný príkaz na spracovanie a skenovanie údajov textových súborov, napríklad na oddelenie konkrétneho poľa súboru; používame príkaz „awk“. Uľahčuje hľadanie čokoľvek v akejkoľvek podobe alebo vzore z textových súborov. V tejto príručke rozumieme základom príkazu „awk“ a jeho použitiu. Príkaz „awk“ overuje údaje, generuje správy a dokonca analyzuje súbory. Používanie jednoduchých príkazov „awk“ tiež umožňuje používateľom písať malé programy na efektívnejšie spracovanie údajov.