Awk

是否在 POSIX 中指定了 awk 的 nextfile?

  • June 18, 2020

GNU awk 手冊內容nextfile如下:

**注意:**多年來,nextfile這是一個常見的擴展。2012 年 9 月,它被納入 POSIX 標準。請參閱奧斯汀集團網站

同樣,mawk 手冊說:

Nextfile 是一個 gawk 擴展(也由 BWK awk 實現),還不是 POSIX 標準的一部分(截至 2012 年 10 月),儘管它已被接受為標準的下一個修訂版。

讓我感到困惑的是,從 2018 年開始,最新的 POSIX 規範nextfile中沒有提及。

通過指向 Austin Group 的連結,您會發現該問題已在 2012 年解決(甚至還有最終接受的文本),但僅在 2020 年應用(!)。

總而言之,這是否意味著nextfilePOSIX 指定了 awk 的功能?還是只會在未來的 POSIX 版本中如此?

(出於實用目的,nextfile也可以在BSD awk中找到。)

nextfile另外兩個語句與:fflushdelete(delete已指定,但將被擴展以便能夠刪除整個數組)處於相同的情況。

您會看到錯誤 607是針對問題 8 的,尚未發布(請參閱問題 8標籤

第 7 期於 2008 年發布,第 7 期有幾個較新的版本,最新於 2018 年,但這些是技術更正,它們沒有帶來新功能。

nextfile不僅是一項新功能,而且還破壞了向後兼容性,因為awk '{nextfile = 1}'在目前 POSIX 版本awk '{nextfile}'中有效呼叫分別設置和檢索變數的值,因此可能無法將其添加為技術勘誤的一部分。awk``nextfile

可以在 TC 中添加(並且可能應該添加)的內容是告訴人們這nextfile是一個保留以供將來使用的詞,因此人們不應該在他們的變數或函式名稱中使用它,作為一個腳本awk '{nextfile = 1}',雖然非常標準,但確實如此在許多awk實現中不起作用(不限於nextfile順便說一句)。

您可以在https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/awk.htmlawk上查看2018 版第 7 期 Single UNIX Specification 部分的HTML 再現(請注意該部分),但請注意即使它是由 Opengroup 發布的,HTML 版本也沒有標準價值,只有 PDF 有(您需要向他們註冊才能訪問它)。.2018edition

它們應該是等效的,儘管過去在轉換為 HTML 時有幾個錯誤導致部分失去(儘管它們通常在發現時會很快修復),所以當有疑問時,最好檢查一下PDF。

引用自:https://unix.stackexchange.com/questions/588906