gawk: Other Versions

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