Наприкінці минулого місяця ми поділилися тут, у блозі, новиною про те, що Браян Керніган, один із творців AWK підтвердив це продовжується за кодом AWK, надаючи підтримку та покращуючи цю мову обробки (ви можете переглянути новини в за наступним посиланням.)
Причиною згадки про це є те, що нещодавно була випущена нова версія реалізації GNU-Gawk 5.2.0 мови програмування AWK.
AWK був розроблений у 70-х роках і не зазнав значних змін із середини 80-х років, коли було визначено основну основу мови, що дозволило зберегти первісну стабільність і простоту мови з часом і з часом. десятиліть.
AWK була однією з перших консольних утиліт популярний для керування (оброблення/вилучення) даними шляхом максимізації функціональності конвеєрів UNIX. Мова, яка надається цією утилітою, наразі є стандартом майже в усіх сучасних операційних системах типу UNIX, настільки, що вона є частиною базових специфікацій UNIX, тому зазвичай уже встановлена в більшості з них за замовчуванням.
Незважаючи на похилий вік, адміністратори все ще активно використовують AWK для виконання рутинної роботи, пов’язаної з аналізом різних типів текстових файлів і генеруванням простої підсумкової статистики.
Ця команда надає мову сценаріїв для обробки тексту, за допомогою якої ми можемо: визначати змінні, використовувати рядки та арифметичні оператори, використовувати керування потоком і цикли, а також генерувати відформатовані звіти. Насправді Awk — це більше, ніж проста команда обробки шаблонів, це ціла мова семантичного аналізу.
Основні нові можливості GNU Awk 5.2
У цій новій версії, яка представлена, це підкреслюється додано експериментальну підтримку менеджера пам’яті pma (persistent malloc), що дозволяє зберігати значення змінних, масивів і визначених користувачем функцій між різними запусками awk.
Ще одна зміна, яка виділяється в цій новій версії, полягає в тому змінена логіка порівняння чисел, що узгоджується з логікою, що використовується в мові C. Для користувачів, зміна в основному впливає на порівняння значень Infinity і NaN зі звичайними номерами.
Крім того, також зазначається можливість використання хеш-функції FNV1-A на асоціативних масивах це вмикається встановленням змінної середовища AWK_HASH на "fnv1a".
У режимі BWK встановлення позначки «–traditional» за замовчуванням забезпечує сумісність із раніше включеними виразами діапазону з опцією «-r» («–re-інтервал»).
Розширення 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 припинено.
В кінці кінців, якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі У наступному посиланні.