繁体   English   中英

为什么默认情况下,即使不兼容POSIX,也有几个Linux发行版附带了mawk?

[英]Why do several Linux distros ship mawk by default even though it is not POSIX compliant?

mawk不支持POSIX,因为它不支持POSIX ERE。

确切地说,它在其ERE中不支持诸如[[:space:]]之类的命名字符类,它们是POSIX ERE的一部分。

GNU awk和BusyBox awk似乎都没有此问题。

我在自己的awk脚本中多次遇到此问题,因为我非常喜欢[[:space:]]用单个字符类表达式匹配htabs以及空格和可能还有其他特定于语言环境的空白。

因此,我想知道为什么即使有POSIX兼容的发行版,还是有几个Linux发行版默认选择提供了一个非POSIX兼容的实现,而该实现不是这样的杰出实用程序?

http://archive.debian.org ,似乎:

  • mawk在1997年左右以1.3.3出现
  • busybox在2002年左右以0.60.2出现
  • busybox终于在2006年达到了版本1(1.1.3)

我可以想象mawk仍然是默认设置,原因之一是:

  1. 惯性。 长期以来,它一直被打包为默认值。

需要注意的是mawk POSIX兼容的(在某种程度上)。 从其联机帮助页:

mawk符合AWK语言的Posix 1003.2(草稿11.3)定义

不幸的是,这不是您关心的版本...

考虑到甚至很难更新其版本:

(两者仍然开放,后者从2009年开始!!),想象一下让debian完全用其他东西代替它会多么困难!

我怀疑还有:

  1. 安装gawk(或您的首选实现)真的很容易

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM