【问题标题】:What is the difference between the different awk versions?不同的awk版本有什么区别?
【发布时间】:2016-11-03 19:21:28
【问题描述】:

我正在阅读 awk here,但我只是想知道 awk 版本,因为我之前遇到过不同 awk 的问题。下面是我所拥有的不同版本。据我了解,有 awk、mawk 和 gawk。 gawk 是最新的/更好的。 谁能澄清我的假设? 我是 GNU Awk 4.1.1 是最新最好的,即它是傻瓜吗?不同版本上还有其他 cmet 吗?

env1 - 我的电脑上的 cygwin

$ awk -Wversion 2>/dev/null || awk --version
GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2, GNU MP 6.0.0)
Copyright (C) 1989, 1991-2014 Free Software Foundation.

env2 - 一个 docker 容器

$ awk -Wversion 2>/dev/null || awk --version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

编辑1

根据评论点击 awk、gawk 和 mawk 的标签
gawk(GNU awk 的缩写)是 awk 的免费实现,具有多种有用的扩展。
Mawk 是 AWK 编程语言的实现和快速处理器。
AWK 是一种解释性编程语言,专为文本处理而设计,通常用作数据提取和报告工具。仅当您的问题与使用 awk 或基于 awk 的 API 的编程有关时,才使用此标签。与使用或排除 awk 命令行选项本身有关的问题是题外话。

【问题讨论】:

  • 点击 mawk 标签。
  • 还有original-awk$ original-awk --version 输出 awk version 20121220.

标签: linux awk cygwin gawk mawk


【解决方案1】:

awk 的基本规范将是此处描述的 POSIX 规范:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html

但是还有其他不符合 POSIX 规范的 awk 实现;要么是因为他们错过了功能、添加了新功能,要么是因为行为不同。

例如,在 gawk 的此页面中,您可以了解其与 POSIX 规范的差异(例如,在某些情况下,要获得完全 POSIX 行为,应在命令行中传递 --posix 选项):https://www.gnu.org/software/gawk/manual/html_node/POSIX_002fGNU.html

你提到gawkmawk;但其他供应商也提供自己的 awk 实现,如 Mac OS X(BSD 实现)、Oracle Sun Solaris、IBM AIX、HP-UX 等。

关于哪个是最好的问题:我想这太主观了。

从实际的角度来看,我会简单地使用系统的awk,如果我发现它太有限或与我的预期不同,我会继续运行gawk

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2012-07-02
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多