14

GNU awk手动打开下一个文件内容如下:

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

同样地,mawk手册说:

Nextfile是一个gawk扩展(也由BWK awk实现),目前还没有POSIX标准的一部分(截至2012年10月),尽管接受下一版本的标准。

让我困惑的是,没有提到下一个文件在里面最新的POSIX规范,自2018年起。

通过与奥斯汀集团的链接,您会发现该问题在2012年得到了解决(甚至有最终接受的文本),但仅在2020年才得到应用(!)。

总之,这是不是意味着下一个文件awk的特性是由POSIX指定的吗?还是只有在未来的POSIX版本中才会这样?

(出于实际目的,下一个文件也可以在中找到BSD awk公司.)

另外两份声明的情况与下一个文件:刷新缓冲区删除(删除已指定,但要展开以删除整个数组)。

2
  • 如您所见,该错误是针对问题8的,尚未发布。第7期于2008年发布,第7期有几个更新版本,最新版本是2018年发布的,但这些都是技术勘误,没有带来新功能。 2020年5月25日20:18
  • 1
    @StéphaneChazelas正确,第8期尚未完成。我们目前正在进行gettext包含,然后需要升级c2x的包含文件。目前的计划是第8期将于明年完成。
    – 希利
    2020年5月25日20:23

2个答案2

重置为默认值
15

你会看到的错误607针对第8期,尚未发布(请参阅问题8 标签).

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

下一个文件不仅是一项新功能,还打破了向后兼容性awk“{nextfile=1}”awk“{nextfile}”是有效的awk公司在当前POSIX版本中设置并检索下一个文件变量,因此可能无法将其添加为技术勘误表的一部分。

TC中可以添加(也可能应该有)的是告诉人们下一个文件是一个保留供将来使用的单词,因此人们不应在变量或函数名中使用它,而应将其用作awk“{nextfile=1}”虽然完全标准,但在许多情况下并不适用awk公司实现(不限于下一个文件btw)。

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

他们是意味等效地说,尽管过去在转换为HTML时出现了一些错误,导致部分丢失(虽然发现这些错误后通常会很快修复),所以如果有疑问,最好是检查PDF。

11

POSIX标准化可视为两项不同的工作:

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

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

awk问题如果标记为第8版出于明确的原因,我们目前正致力于最终确定预计于2021年准备就绪的第8版标准。

5
  • 6
    为什么会投反对票? 2020年5月25日20:40
  • 1
    @我所有的答案都被投反对票的巨魔们否决了。这与内容无关。。。
    – 希利
    2020年5月25日20:53
  • @希利,你的许多答案也与下面写的问题无关或完全无关,所以这也可能是他们获得否决票的原因。不过,我不觉得有这个问题。 2020年6月18日21:26
  • @我通常给出的答案除了预期的答案外,还解释了背景或原因。如果你不理解这一点,你身边可能有问题。。。那么,你是投了反对票,还是有礼貌,宁愿写评论?如果你不明白为什么一个特定的答案正确地解释了背景,你应该写一个有用的评论,让措辞更好。
    – 希利
    2020年6月19日6:59
  • @希利,我不赞成那些我觉得不清楚或没用的帖子,因为我希望其他人也这么做。如果我有时间,我也会发表评论,并认为这样做很有用。如果你想知道每个人都投了什么票,我想你必须问SE。我认为这个系统应该让投票保持匿名。 2020年6月19日8:32

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.