В края на миналия месец споделихме тук в блога новината, че Браян Керниган, един от създателите на AWK беше потвърдил това продължава зад AWK кода, предоставяйки поддръжка и подобрявайки този език за обработка (можете да се консултирате с новините в следната връзка.)
Причината да спомена това е, че наскоро беше пусната нова версия на изпълнението на GNU-Gawk 5.2.0, на езика за програмиране AWK.
AWK е разработен през 70-те години на миналия век и не е претърпял значителни промени от средата на 80-те години на миналия век, когато беше дефиниран основният гръбнак на езика, което направи възможно поддържането на първоначалната стабилност и простота на езика във времето и във времето. десетилетия.
AWK беше една от първите конзолни помощни програми популярен за управление (обработка/извличане) на данни чрез максимизиране на функционалността на конвейерите на UNIX. Езикът, предоставен от тази помощна програма, в момента е стандарт в почти всички съвременни операционни системи от тип UNIX, дотолкова, че е част от основните спецификации на UNIX, така че обикновено се намира вече инсталиран в повечето от тях по подразбиране.
Въпреки напредналата си възраст, администраторите все още активно използват AWK за извършване на рутинна работа, свързана с анализиране на различни типове текстови файлове и генериране на прости резултатни статистики.
Тази команда предоставя скриптов език за обработка на текст, с който можем: да дефинираме променливи, да използваме низове и аритметични оператори, да използваме контрол на потока и цикли и да генерираме форматирани отчети. Всъщност Awk е нещо повече от проста команда за обработка на шаблони, това е цял език за семантичен анализ.
Основни нови характеристики на GNU Awk 5.2
В тази нова версия, която е представена, е подчертано, че добавена експериментална поддръжка за pma memory manager (persistent malloc), което ви позволява да запазвате стойностите на променливи, масиви и дефинирани от потребителя функции между различни изпълнения на awk.
Друга от промените, които се открояват в тази нова версия, е тази променена логика на сравнение от числа, което е в съответствие с логиката, използвана в езика C. За потребителите, промяната засяга главно сравнението на Infinity и NaN стойностите с редовни номера.
В допълнение към това също отбелязва се, че възможността за използване на хеш функцията FNV1-A на асоциативните масиви се активира чрез задаване на променливата на средата AWK_HASH на "fnv1a".
В режим BWK, указването на флага „–traditional“ по подразбиране позволява съвместимост с предварително включени изрази за диапазон с опцията „-r“ („–re-interval“).
Разширението rwarray предоставя нови функции writeall() и readall() за запис и четене на всички променливи и масиви наведнъж.
В допълнение към него, поддръжка за аритметика с висока точност, е реализиран с помощта на библиотеката MPFR, в допълнение към отстранен от отговорността на поддържащия GNU Awk и прехвърлен на трета страна ентусиаст. Отбелязва се, че изпълнението на режим MPFR на GNU Awk се счита за грешка. В случай на продължителна промяна на състоянието се планира напълно да се премахне тази функция от GNU Awk.
От останалите промени които се открояват от тази нова версия:
- Актуализирани компоненти на инфраструктурата за изграждане Libtool 2.4.7 и Bison 3.8.2.
- Премахната поддръжка за компилиране с CMake (поддръжката на код за CMake не беше търсена и не беше актуализирана пет години).
- Добавена е функцията mkbool() за създаване на булеви стойности, които са числа, но се третират като булев тип.
- Добавен скрипт gawkbug за докладване на грешки.
- Предоставя се незабавно изключване при синтактични грешки, разрешаване на проблеми с помощта на размити инструменти.
- Имаше множество незначителни изчиствания на кода и корекции на грешки.
- Поддръжката за операционни системи OS/2 и VAX/VMS е премахната.
Накрая, ако се интересувате да научите повече за това, можете да проверите подробностите В следващия линк.