我正在阅读awk here,但我只是想知道awk的版本,因为我之前遇到过不同awks的问题。下面是我所拥有的不同版本。据我了解,有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命令行选项本身有关的问题是题外话。

最佳答案

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

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

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

你提到高跷或花胶;但是其他供应商也提供了自己的awk实现,如在Mac OS X(BSD实现),Oracle Sun Solaris,IBM AIX,HP-UX等中发现的那样。

关于哪个问题是最好的问题:我想这可能是一个主观的回答。

从实际的 Angular 来看,我将仅使用系统的awk,并且在发现过于局限或与我期望的不同的情况下,我将继续运行gawk

关于linux - 不同的awk版本之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40409632/

10-10 22:33