Tato kapitola popisuje několik užitečných příkazy AWK a jejich vhodné příklady. Zvažte značky textového souboru.txt, které mají být zpracovány s následujícím obsahem –
1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
tiskový sloupec nebo pole
můžete instruovat AWK tisknout pouze určité sloupce ze vstupního pole., Následující příklad ukazuje toto −
Příklad:
$ awk '{print $3 "\t" $4}' marks.txt
Na provádění tohoto kódu, dostanete následující výsledek −
Výstup
Physics 80Maths 90Biology 87English 85History 89
V souboru značek.txt, třetí sloupec obsahuje název předmětu a čtvrtý sloupec obsahuje značky získané v konkrétním předmětu. Vytiskneme tyto dva sloupce pomocí příkazu awk print. Ve výše uvedeném příkladu představují 3 $a 4 $třetí a čtvrté pole ze vstupního záznamu.
tisk všech řádků
ve výchozím nastavení AWK vytiskne všechny řádky, které odpovídají vzoru.,
Příklad:
$ awk '/a/ {print $0}' marks.txt
Na provádění tohoto kódu, dostanete následující výsledek −
Výstup
2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
Ve výše uvedeném příkladu, hledáme tvoří vzor. Když vzor zápase uspěje, spustí příkaz z těla bloku. Při absenci tělesného bloku-je provedena výchozí akce, která vytiskne záznam. Tedy, následující příkaz vytvoří stejný výsledek,
Příklad:
$ awk '/a/' marks.txt
Tisk Sloupce podle Vzoru
vzor zápas podaří, AWK vytiskne celý záznam ve výchozím nastavení., Ale můžete instruovat AWK k tisku pouze určitých polí. Například následující příklad vytiskne třetí a čtvrté pole, když uspěje zápas vzoru.
Příklad:
$ awk '/a/ {print $3 "\t" $4}' marks.txt
Na provádění tohoto kódu, dostanete následující výsledek −
Výstup
Maths 90Biology 87English 85History 89
Tisk Sloupce v libovolném Pořadí
můžete vytisknout v libovolném pořadí sloupců. Například následující příklad vytiskne čtvrtý sloupec následovaný třetím sloupcem.,
Příklad:
$ awk '/a/ {print $4 "\t" $3}' marks.txt
Na provádění výše uvedený kód, dostanete následující výsledek −
Výstup
90 Maths87 Biology85 English89 History
Počítání a Tisk Uzavřeno Vzor
podívejme se na příklad, kde se můžete spolehnout a tisku počet řádků, pro které vzoru odpovídají podařilo.
Příklad:
$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt
Na provádění tohoto kódu, dostanete následující výsledek −
Výstup
Count = 4
V tomto příkladu, budeme zvyšovat hodnotu čítače, pokud vzor zápas podaří a my vytisknout tuto hodnotu na KONCI bloku., Všimněte si, že na rozdíl od jiných programovacích jazyků Není třeba deklarovat proměnnou před použitím.
Tiskové řádky s více než 18 znaky
vytiskneme pouze ty řádky, které obsahují více než 18 znaků.
Příklad:
$ awk 'length($0) > 18' marks.txt
Na provádění tohoto kódu, dostanete následující výsledek −
Výstup
3) Shyam Biology 874) Kedar English 85
AWK poskytuje vestavěný délka funkce, která vrací délku řetězce. Proměnná $0 ukládá celý řádek a při absenci tělesného bloku se provede výchozí akce,tj., Pokud má tedy řádek více než 18 znaků, výsledky srovnání jsou pravdivé a řádek se vytiskne.