上個月底,我們在博客上分享了以下消息: Brian Kernighan,AWK 的創造者之一 已經確認 在 AWK 代碼後面繼續,給予支持和改進這種處理語言(您可以在 以下鏈接.)
之所以提到這一點,是因為最近 發布了新版本的 GNU-Gawk 實現 AWK 編程語言的 5.2.0。
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-interval”)選項的範圍表達式兼容。
rwarray 擴展提供了新的 writeall() 和 readall() 函數來一次寫入和讀取所有變量和數組。
除了它,支持高精度算術, 已經使用 MPFR 庫實現,除了 從 GNU Awk 維護者責任中刪除 並轉移給第三方愛好者。 請注意,GNU Awk 的 MPFR 模式實現被認為是一個錯誤。 如果發生持續的狀態更改,計劃從 GNU Awk 中完全刪除此功能。
其他變化 從這個新版本中脫穎而出:
- 更新了構建基礎設施組件 Libtool 2.4.7 和 Bison 3.8.2。
- 刪除了對使用 CMake 進行編譯的支持(對 CMake 的代碼支持沒有需求,並且五年內沒有更新)。
- 添加了 mkbool() 函數來創建布爾值,它是數字,但被視為布爾類型。
- 添加了 gawkbug 腳本以報告錯誤。
- 語法錯誤提供即時關閉,使用模糊工具解決問題。
- 有許多次要的代碼清理和錯誤修復。
- 已刪除對 OS/2 和 VAX/VMS 操作系統的支持。
終於, 如果你有興趣了解更多,您可以查看詳細信息 在下面的鏈接中。