如何找到我的awk版本?


12

如果我想知道awk的版本,则会得到以下信息:

$ awk --version
awk: not an option: --version

签入后man awk发现我的awk是

mawk-模式扫描和文本处理语言


--version是GNU为自己的命令发明的东西,它不是POSIX的一部分,并且大多数命令都不支持--version。但是GNU awk可以执行,而awk --version在我的系统上可以执行一些明智的操作。fedorqui的发行版默认使用GNU awk之外的其他东西。
wingedsubmariner 2013年

@wingedsubmariner是您提供的有趣信息。谢谢!我的缺点是mawk,因此不存在version
fedorqui 2013年

Answers:


14

在这种情况下,man awk向我们展示:

-W版本

mawk将其版本和版权写入stdout,并将已编译的限制写入stderr,然后退出0。

就我而言

$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

compiled limits:
max NF             32767
sprintf buffer      2040

3

我尝试变得更笼统。

awk -Wversion 2>/dev/null || awk --version

无论awk调用可用于Debian / Ubuntu Linux的mawk,gawk还是original-awk,均可使用。请注意,-Wversion必须串接,使原始的awk并不认为version是一个程序。在Ubuntu Linux中,您可以sudo update-alternatives --config awk用来查看和选择由awk命令调用的实现。


我不知道它是多么的标准接受级联选项,但它不是在我的经验有必要使用它:awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --version或可替代(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)
亚诺-
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.