Obsah

AWK (Text Processing Language)

AWK (pojmenovaný podle autorů Aho, Weinberger, Kernighan) je nástroj pro manipulaci s daty, generování reportů a provádění výpočtů nad textovými soubory. Jeho největší síla spočívá v tom, že automaticky dělí každý řádek na jednotlivá pole (sloupce).

1. Základní princip fungování

AWK čte vstup řádek po řádku a pro každý řádek zkouší aplikovat zadaná pravidla ve formátu:

Pokud řádek odpovídá vzoru, provede se akce. Pokud vzor chybí, akce se provede pro každý řádek.

2. Práce se sloupci (Fields)

AWK standardně používá jako oddělovač sloupců mezeru nebo tabulátor.

Příklad: Výpis konkrétních sloupců

ls -l | awk '{ print $9, $5 }'

3. Pokročilé funkce a výpočty

AWK umí pracovat s proměnnými, podmínkami a cykly, což z něj dělá mocný analytický nástroj.

Úkol Příkaz
Filtrování awk '$3 > 500 { print $1 }' data.txt (vypíše 1. sloupec, pokud je ve 3. sloupci hodnota > 500)
Sčítání awk '{ sum += $2 } END { print sum }' soubor (sečte všechny hodnoty v druhém sloupci)
Změna oddělovače awk -F: '{ print $1 }' /etc/passwd (použije dvojtečku jako oddělovač a vypíše uživatelská jména)

4. Speciální bloky: BEGIN a END

5. Proč používat AWK místo sedu nebo Pythonu?

Zajímavost: AWK je „datově řízený“ jazyk. To znamená, že nemusíte psát smyčku pro čtení souboru – AWK ji má v sobě zabudovanou a vy jen definujete, co se má stát s daty uvnitř.

Zpět na Linux