If I want to know the version of awk I get the following:
$ awk --version
awk: not an option: --version
Checking in man awk
I see that my awk is
mawk - pattern scanning and text processing language
In this case, man awk
shows us:
-W version
mawk writes its version and copyright to stdout and compiled limits to stderr and exits 0.
In my case,
$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
compiled limits:
max NF 32767
sprintf buffer 2040
-v
or --version
on Linux. On the Mac, it is showing a 2007 version but it supports --version
. I suppose awk
is important enough that they can do whatever they want, and it is coherent with what I feel at work: if you are easy, you get looked down and stepped on. If you are difficult, you get respected
Dec 17, 2020 at 0:55
20200816
The one that showed 2007 was Mojave. The one that needed the -W
was showing mawk
Dec 17, 2020 at 16:37
I try to be more general.
awk -Wversion 2>/dev/null || awk --version
works whether awk invokes mawk, gawk or original-awk available for Debian/Ubuntu Linux. Note that -W
and version
have to be concatenated so that original-awk does not think version
is a program.
In Ubuntu Linux you can use sudo update-alternatives --config awk
to see and to choose the implementation that is invoked by the command awk.
awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --version
or alternatively (s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)
mawk
, hence the inexistence ofversion
.