簡體   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