GNU awk 手册nextfile
内容如下:
笔记:多年来,
nextfile
这是一个常见的扩展。 2012 年 9 月,它被纳入 POSIX 标准。看奥斯汀集团网站。
同样地,莫克手册说:
Nextfile 是 gawk 扩展(也由 BWK awk 实现),尚未成为 POSIX 标准的一部分(截至 2012 年 10 月),尽管它已被该标准的下一个修订版所接受。
让我困惑的是没有nextfile
提到最新的 POSIX 规范,从 2018 年开始。
通过奥斯汀集团的链接,您会发现该问题已于 2012 年得到解决(甚至有最终接受的文本),但仅在 2020 年应用(!)。
总而言之,这是否意味着nextfile
awk 的功能是由 POSIX 指定的?或者只会在未来的 POSIX 版本中如此?
(出于实际目的,nextfile
还可以在BSD awk.)
另外两个语句处于相同的情况nextfile
:fflush
和delete
(delete
已经指定,但要扩展以便能够删除整个数组)。
答案1
你会看到错误 607目标是第 8 期,尚未发布(请参阅第8期 标签)。
第7期于2008年发布,第7期有一些较新的版本,最新版本是2018年,但这些都是技术勘误,它们没有带来新功能。
nextfile
不仅是一个新功能,而且还破坏了向后兼容性,因为awk '{nextfile = 1}'
和是在当前 POSIX 版本中分别设置和检索变量值的awk '{nextfile}'
有效调用,因此可能无法将其添加为技术勘误的一部分。awk
nextfile
在 TC 中可以添加(并且可能应该添加)的是告诉人们这nextfile
是一个保留供将来使用的单词,这样人们就不应该在变量或函数名称中使用它,就像脚本那样awk '{nextfile = 1}'
,尽管完全标准,但确实如此在许多实现中不起作用awk
(不限于nextfile
顺便说一句)。
awk
您可以在以下位置查看单一 UNIX 规范第 7 期 2018 年版部分内容的 HTML 版本:https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/awk.html(请注意该.2018edition
部分),但请注意,尽管它是由 Opengroup 发布的,但 HTML 版本没有标准价值,只有 PDF 具有标准价值(您需要向他们注册才能访问它)。
他们是意思是同样,尽管过去在转换为 HTML 时存在一些错误,导致部分丢失(尽管发现后通常会很快修复),所以当有疑问时,最好检查 PDF。
答案2
POSIX 标准化可以被视为两项不同的工作:
不影响接口的错误修复,这作为所谓的技术勘误表发布。目前的Issue 7标准基本上是2008年的,2018年的版本是TC2。
影响界面的新功能。这需要标准的新主要版本。
awk 问题如果被标记为Issue 8
指定原因,我们目前正在努力最终确定第 8 版标准,预计将于 2021 年准备就绪。