Na konci minulého měsíce jsme zde na blogu sdíleli novinku, že Brian Kernighan, jeden z tvůrců AWK to potvrdil pokračuje za kódem AWK, poskytující podporu a vylepšování tohoto zpracovatelského jazyka (novinky si můžete prohlédnout v následující odkaz.)
Důvodem pro zmínku je to, že nedávno byla vydána nová verze implementace GNU-Gawk 5.2.0, programovacího jazyka AWK.
AWK byl vyvinut v 70. letech 80. století a od poloviny XNUMX. let, kdy byla definována hlavní páteř jazyka, neprošel výraznými změnami, což umožnilo zachovat původní stabilitu a jednoduchost jazyka v čase a v čase. dekády.
AWK byla jedna z prvních konzolových utilit populární pro správu (zpracování/extrakce) dat maximalizací funkčnosti kanálů UNIX. Jazyk poskytovaný touto utilitou je v současné době standardem téměř ve všech moderních operačních systémech typu UNIX, a to natolik, že je součástí základních unixových specifikací, takže je obvykle ve většině z nich standardně nainstalovaný.
I přes svůj pokročilý věk, administrátoři stále aktivně používají AWK provádět rutinní práci související s analýzou různých typů textových souborů a generováním jednoduchých výsledných statistik.
Tento příkaz poskytuje skriptovací jazyk pro zpracování textu, pomocí kterého můžeme: Definovat proměnné, používat řetězce a aritmetické operátory, používat řízení toku a smyčky a generovat formátované zprávy. Ve skutečnosti je Awk více než jen jednoduchý příkaz pro zpracování vzorů, je to celý jazyk sémantické analýzy.
Hlavní nové funkce GNU Awk 5.2
V této nové verzi, která je prezentována, je to zdůrazněno přidána experimentální podpora pro správce paměti pma (persistent malloc), který umožňuje ukládat hodnoty proměnných, polí a uživatelem definovaných funkcí mezi různými běhy awk.
Další změna, která v této nové verzi vyniká, je ta změnila srovnávací logiku čísel, což je v souladu s logikou používanou v jazyce C. Pro uživatele, změna se týká především srovnání hodnot Infinity a NaN s běžnými čísly.
Kromě toho také je třeba poznamenat, že schopnost používat hashovací funkci FNV1-A na asociativních polích je povolena nastavením proměnné prostředí AWK_HASH na "fnv1a".
V režimu BWK zadání příznaku „–tradiční“ ve výchozím nastavení umožňuje kompatibilitu s dříve zahrnutými výrazy rozsahu s možností „-r“ („–re-interval“).
Rozšíření rwarray poskytuje nové funkce writeall() a readall() pro zápis a čtení všech proměnných a polí najednou.
Kromě toho, podpora vysoce přesné aritmetiky, byl navíc implementován pomocí knihovny MPFR odstraněno z odpovědnosti správce GNU Awk a převedena na nadšence třetí strany. Je třeba poznamenat, že implementace GNU Awk v režimu MPFR je považována za chybu. V případě trvalé změny stavu se plánuje úplné odstranění této funkce z GNU Awk.
Z dalších změn které vyčnívají z této nové verze:
- Aktualizované komponenty infrastruktury sestavení Libtool 2.4.7 a Bison 3.8.2.
- Odstraněna podpora pro kompilaci s CMake (podpora kódu pro CMake nebyla žádaná a nebyla aktualizována po dobu pěti let).
- Přidána funkce mkbool() pro vytvoření booleovských hodnot, které jsou čísly, ale jsou považovány za booleovský typ.
- Přidán skript gawkbug pro hlášení chyb.
- Okamžité vypnutí je poskytováno při syntaktických chybách, řešení problémů pomocí fuzzing nástrojů.
- Došlo k četným drobným vyčištěním kódu a opravám chyb.
- Podpora operačních systémů OS/2 a VAX/VMS byla odstraněna.
Konečně, pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti Na následujícím odkazu.