2

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

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 命令行选项本身有关的问题是题外话。

4

1 回答 1

2

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

于 2017-04-24T14:29:34.970 回答