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).
AWK čte vstup řádek po řádku a pro každý řádek zkouší aplikovat zadaná pravidla ve formátu:
awk 'vzor { akce }' souborPokud řádek odpovídá vzoru, provede se akce. Pokud vzor chybí, akce se provede pro každý řádek.
AWK standardně používá jako oddělovač sloupců mezeru nebo tabulátor.
ls -l | awk '{ print $9, $5 }'
ls.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) |
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ř.