gawk: Other Versions
1
1 B.5 Other Freely Available 'awk' Implementations
1 ================================================
1
1 It's kind of fun to put comments like this in your awk code:
1 '// Do C++ comments work? answer: yes! of course'
1 -- _Michael Brennan_
1
1 There are a number of other freely available 'awk' implementations.
1 This minor node briefly describes where to get them:
1
1 Unix 'awk'
1 Brian Kernighan, one of the original designers of Unix 'awk', has
1 made his implementation of 'awk' freely available. You can
1 retrieve this version via his home page
1 (http://www.cs.princeton.edu/~bwk). It is available in several
1 archive formats:
1
1 Shell archive
1 <http://www.cs.princeton.edu/~bwk/btl.mirror/awk.shar>
1
1 Compressed 'tar' file
1 <http://www.cs.princeton.edu/~bwk/btl.mirror/awk.tar.gz>
1
1 Zip file
1 <http://www.cs.princeton.edu/~bwk/btl.mirror/awk.zip>
1
1 You can also retrieve it from GitHub:
1
1 git clone git://github.com/onetrueawk/awk bwkawk
1
1 This command creates a copy of the Git (https://git-scm.com)
1 repository in a directory named 'bwkawk'. If you leave that
1 argument off the 'git' command line, the repository copy is created
1 in a directory named 'awk'.
1
1 This version requires an ISO C (1990 standard) compiler; the C
1 compiler from GCC (the GNU Compiler Collection) works quite nicely.
1
1 ⇒Common Extensions for a list of extensions in this 'awk'
1 that are not in POSIX 'awk'.
1
1 As a side note, Dan Bornstein has created a Git repository tracking
1 all the versions of BWK 'awk' that he could find. It's available
1 at <git://github.com/danfuzz/one-true-awk>.
1
1 'mawk'
1 Michael Brennan wrote an independent implementation of 'awk',
1 called 'mawk'. It is available under the GPL (⇒Copying),
1 just as 'gawk' is.
1
1 The original distribution site for the 'mawk' source code no longer
1 has it. A copy is available at
1 <http://www.skeeve.com/gawk/mawk1.3.3.tar.gz>.
1
1 In 2009, Thomas Dickey took on 'mawk' maintenance. Basic
1 information is available on the project's web page
1 (http://www.invisible-island.net/mawk). The download URL is
1 <http://invisible-island.net/datafiles/release/mawk.tar.gz>.
1
1 Once you have it, 'gunzip' may be used to decompress this file.
1 Installation is similar to 'gawk''s (⇒Unix Installation).
1
1 ⇒Common Extensions for a list of extensions in 'mawk' that
1 are not in POSIX 'awk'.
1
1 'mawk' 2.0
1 In 2016, Michael Brennan resumed 'mawk' development. His
1 development snapshots are available via Git from the project's
1 GitHub page (https://github.com/mikebrennan000/mawk-2).
1
1 'awka'
1 Written by Andrew Sumner, 'awka' translates 'awk' programs into C,
1 compiles them, and links them with a library of functions that
1 provide the core 'awk' functionality. It also has a number of
1 extensions.
1
1 The 'awk' translator is released under the GPL, and the library is
1 under the LGPL.
1
1 To get 'awka', go to <https://sourceforge.net/projects/awka>.
1
1 The project seems to be frozen; no new code changes have been made
1 since approximately 2001.
1
1 'pawk'
1 Nelson H.F. Beebe at the University of Utah has modified BWK 'awk'
1 to provide timing and profiling information. It is different from
1 'gawk' with the '--profile' option (⇒Profiling) in that it
1 uses CPU-based profiling, not line-count profiling. You may find
1 it at either
1 <ftp://ftp.math.utah.edu/pub/pawk/pawk-20030606.tar.gz> or
1 <http://www.math.utah.edu/pub/pawk/pawk-20030606.tar.gz>.
1
1 BusyBox 'awk'
1 BusyBox is a GPL-licensed program providing small versions of many
1 applications within a single executable. It is aimed at embedded
1 systems. It includes a full implementation of POSIX 'awk'. When
1 building it, be careful not to do 'make install' as it will
1 overwrite copies of other applications in your '/usr/local/bin'.
1 For more information, see the project's home page
1 (https://busybox.net).
1
1 The OpenSolaris POSIX 'awk'
1 The versions of 'awk' in '/usr/xpg4/bin' and '/usr/xpg6/bin' on
1 Solaris are more or less POSIX-compliant. They are based on the
1 'awk' from Mortice Kern Systems for PCs. We were able to make this
1 code compile and work under GNU/Linux with 1-2 hours of work.
1 Making it more generally portable (using GNU Autoconf and/or
1 Automake) would take more work, and this has not been done, at
1 least to our knowledge.
1
1 The source code used to be available from the OpenSolaris website.
1 However, that project was ended and the website shut down.
1 Fortunately, the Illumos project
1 (https://wiki.illumos.org/display/illumos/illumos+Home) makes this
1 implementation available. You can view the files one at a time
1 from
1 <https://github.com/joyent/illumos-joyent/blob/master/usr/src/cmd/awk_xpg4>.
1
1 'jawk'
1 This is an interpreter for 'awk' written in Java. It claims to be
1 a full interpreter, although because it uses Java facilities for
1 I/O and for regexp matching, the language it supports is different
1 from POSIX 'awk'. More information is available on the project's
1 home page (https://jawk.sourceforge.net).
1
1 Libmawk
1 This is an embeddable 'awk' interpreter derived from 'mawk'. For
1 more information, see <http://repo.hu/projects/libmawk/>.
1
1 'pawk'
1 This is a Python module that claims to bring 'awk'-like features to
1 Python. See <https://github.com/alecthomas/pawk> for more
1 information. (This is not related to Nelson Beebe's modified
1 version of BWK 'awk', described earlier.)
1
1 QSE 'awk'
1 This is an embeddable 'awk' interpreter. For more information, see
1 <https://code.google.com/p/qse/>.
1
1 'QTawk'
1 This is an independent implementation of 'awk' distributed under
1 the GPL. It has a large number of extensions over standard 'awk'
1 and may not be 100% syntactically compatible with it. See
1 <http://www.quiktrim.org/QTawk.html> for more information,
1 including the manual. The download link there is out of date; see
1 <http://www.quiktrim.org/#AdditionalResources> for the latest
1 download link.
1
1 The project may also be frozen; no new code changes have been made
1 since approximately 2014.
1
1 Other versions
1 See also the "Versions and implementations" section of the
1 Wikipedia article
1 (https://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations)
1 on 'awk' for information on additional versions.
1