Example -1: Definovanie a tlač premennej
Príkaz „awk“ používa na definovanie premennej možnosť „-v“. V tomto príklade myvar premenná je definovaná v príkaze 'awk' na uloženie hodnoty, „Premenná AWK“ ktorý sa vytlačí neskôr. Spustením nasledujúceho príkazu z terminálu skontrolujte výstup.
$ echo | awk -v myvar = 'AWK premenná' 'print myvar'Výkon:
Príklad - 2: Použitie premennej shellu v awk s jednoduchou a dvojitou úvodzovkou
Príklad ukazuje, ako sa dá premenná shellu použiť príkaz „awk“. Tu premenná shellu, myvar je deklarovaná s hodnotou, „Linux Hint“ v prvom príkaze. Symbol '$' sa používa s názvom premennej prostredia na čítanie hodnoty. Druhý príkaz načíta premennú, $ myval s jednoduchou úvodzovkou (') a tretí príkaz načíta premennú $ myvar s dvojitou úvodzovkou (“) vo výpise' awk '.
$ myvar = "Linuxový tip"$ echo | awk -v awkvar = '$ myvar' 'tlačiť awkvar; '
$ echo | awk -v awkvar = "$ myvar" 'tlačiť awkvar; '
Výkon:
Vo výstupe sa zobrazuje, že hodnotu $ myvar nie je možné prečítať, ak je uvedená v jednej úvodzovke (') a výstup je $ myvar. Hodnota $ myvar sa vytlačí, ak je pripojený k dvojitej ponuke („).
Príklad - 3: Čítanie premennej ARGC v awk
Premenná ARGC sa používa na spočítanie celkového počtu argumentov príkazového riadku. V nasledujúcom skripte awk sú odovzdané tri premenné argumentov príkazového riadku (t1, t2, t3). Tu je celkový počet argumentov so skriptom 4. Spustite skript z terminálu.
$ awk 'BEGIN print "Total argumenty =", ARGC' t1 t2 t3Výkon:
Po spustení skriptu sa zobrazí nasledujúci výstup.
Príklad - 4: Čítanie obsahu súboru pomocou premenných argumentov
Vytvorte textový súbor s názvom zákazník.TXT s nasledujúcim obsahom na precvičenie tohto príkladu. Tu je každé pole súboru oddelené jedným znakom tab priestor.
zákazník.TXT
Identifikačné meno103847 Ján Michal
209485 Watson
974732 Mira Hossain
Príkaz Awk dokáže prečítať každé pole z ľubovoľného textového súboru pomocou premenných argumentov. V aplikácii sú dve polia zákazník.TXT spis. Jedná sa o ID a meno. Nasledujúci skript vytlačí tieto dve polia pomocou premenných argumentov, 1 $ a 2 doláre oddelením dvoch tab medzery. Spustite skript z terminálu.
$ mačka zákazníka.TXT$ mačka zákazníka.txt | awk 'print $ 1 "\ t \ t" $ 2;'
Výkon:
Po vykonaní vyššie uvedených príkazov sa objaví nasledujúci výstup.
Príklad - 5: Použitie vstavanej premennej, možnosti FS a oddeľovača polí s príkazom awk
Premenná FS sa v príkaze awk používa ako oddeľovač polí. Ako predvolená hodnota FS sa používa medzera. Nasledujúci príkaz načíta súbor zákazník.TXT pomocou medzery ako oddeľovača polí a vytlačiť obsah súboru. Spustite príkaz z terminálu.
$ awk FS zákazník.TXTVýkon:
Po spustení skriptu sa zobrazí nasledujúci výstup.
Príkaz Awk môže používať iné znaky ako oddeľovač polí pomocou možnosti „-F“. Vytvorte textový súbor s názvom výrobok.TXT s nasledujúcim obsahom, kde sa ako oddeľovač polí používa znak „:“.
výrobok.TXT
101: Torta: 30 dolárov102: Ceruzka: 5 dolárov
103: Mydlo: 3 doláre
104: Šampón: 10 dolárov
Súbor obsahuje tri polia, výrobok.TXT ktorý obsahuje ID produktu, názov a cenu. Nasledujúci príkaz awk vytlačí iba druhé pole každého riadku. Spustite príkazy z terminálu.
$ mačací produkt.TXT$ awk -F ':' 'print $ 2' produkt.TXT
Výkon:
Tu prvý príkaz vytlačil obsah súboru výrobok.TXT a druhý príkaz vytlačil iba druhé pole súboru.
Príklad - 6: Použitie vstavanej premennej NR s príkazom awk
Premenná NR sa používa v príkaze awk na spočítanie celkového počtu záznamov alebo riadkov súboru. Vytvorte textový súbor s názvom študent.TXT na otestovanie funkcie tejto premennej.
študent.TXT
Názov Dávkový semesterJán 20 3
Mira 22 1
Ella 18
Charle 15 8
Nasledujúci skript awk vytlačí prvé tri riadky súboru výrobok.TXT spis. Tu je podmienka pridaná pomocou premennej NR. Príkaz vytlačí tie riadky, ktorých hodnota NR je menšia ako 4. Spustite skript z terminálu.
Výkon:
Po spustení skriptu sa zobrazí nasledujúci výstup.
$ študent mačiek.txt | awk 'NR < 4'
Príklad - 7: Používanie vstavanej premennej NF s príkazom awk
Premenná NF sa v príkaze awk používa na spočítanie celkového počtu polí v každom riadku súboru. Pre súbor je použitý nasledujúci awk skript, študent.TXT ktorý je vytvorený v predchádzajúcom príklade. Skript vytlačí tieto riadky z študent.TXT súbor, kde je celkový počet polí menej ako 3. Spustite príkaz z terminálu.
$ študent mačiek.txt | awk 'NF < 3'Výkon:
V súbore existuje iba jeden riadok, v ktorom je ako výstup vytlačený celkový počet polí menej ako 3.
Príklad - 8: Použitie vstavanej premennej, OFS s príkazom awk
Premenná OFS sa používa v príkaze awk na pridanie oddeľovača výstupného poľa do výstupu. výrobok.TXT súbor sa v tomto príklade používa na zobrazenie použitia premennej OFS. „:“ sa v produkte používa ako oddeľovač polí.súbor txt. Nasledujúci skript awk používal ako hodnotu OFS „->“ a pridaním tohto oddeľovača sa vytlačí druhé a tretie pole súboru. Spustite príkazy z terminálu.
$ mačací produkt.TXT$ awk -F ':' 'ZAČIATOK OFS = "->"; tlačiť $ 2, $ 3;' produkt.TXT
Výkon:
Po vykonaní príkazov sa vytlačí nasledujúci výstup.
Záver:
V tejto príručke sa pokúsime vysvetliť najbežnejšie použitie premenných awk. Dúfam, že čitateľ bude po nacvičení tohto tutoriálu schopný správne používať premenné awk v skripte.