awk 的 nextfile 是在 POSIX 中指定的吗?

Qua*_*odo 12 awk posix

GNU awk 手册内容nextfile如下:

注意:多年来,nextfile是一个常见的扩展。2012 年 9 月,它被接受纳入 POSIX 标准。请参阅奥斯汀集团网站

同样,mawk 手册说:

Nextfile 是一个 gawk 扩展(也由 BWK awk 实现),还不是 POSIX 标准的一部分(截至 2012 年 10 月),尽管它已被标准的下一个修订版接受。

是什么让我困惑的是,有没有提到nextfile最新的POSIX规范,从2018。

通过指向 Austin Group 的链接,您会发现该问题已在 2012 年解决(甚至还有最终接受的文本),但仅在 2020 年(!)中应用。

总而言之,这是否意味着nextfile是 POSIX 指定的 awk 功能?或者只会在未来的 POSIX 版本中如此?

(出于实际目的,nextfile也可以在BSD awk 中找到。)

还有两个语句与nextfile: fflushand delete( 的情况相同delete,但已指定,但要扩展以便能够删除整个数组)。

Sté*_*las 13

您会看到bug 607是针对第 8 期的,尚未发布(请参阅issue8 标签)。

第 7 期于 2008 年发布,第 7 期有一些较新的版本,最新版本是 2018 年,但这些都是技术勘误,并没有带来新功能。

nextfile不仅是一项新功能,但也打破的向后兼容性awk '{nextfile = 1}'awk '{nextfile}'有效awk调用这在目前的POSIX版本设置和返回的值nextfile分别为变量,因此它可能无法添加为一个技术性更正的一部分。

可以在 TC 中添加(并且可能应该添加)的是告诉人们这nextfile是一个保留供将来使用的词,以便人们不应在他们的变量或函数名称中使用它,因为脚本awk '{nextfile = 1}'虽然完全标准,但确实如此在许多awk实现中不起作用(不仅限于nextfilebtw)。

您可以awkhttps://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/awk.html(注意.2018edition部分)上查看2018 版单一 UNIX 规范第 7 期部分的HTML版本(注意部分)即使它是由 Opengroup 发布的,HTML 版本也没有标准的价值,只有 PDF 有(您需要向他们注册才能访问它)。

他们的意思是等同的,虽然有在造成部分失踪(尽管发现时,他们通常很快固定)过去一直在变换了几个错误,以HTML,所以当有疑问,最好是检查PDF。


sch*_*ily 9

POSIX 标准化可以被视为两种不同的努力:

  • 不影响接口的错误修复,这是作为所谓的技术勘误表发布的。当前的第 7 版标准基本上是从 2008 年开始的,2018 年发布的是 TC2。

  • 影响界面的新功能。这需要标准的新主要版本。

awk 问题(如果Issue 8出于命名原因标记为),我们目前正在努力敲定第 8 期标准,预计将于 2021 年准备就绪。

  • 为什么投反对票? (6认同)