gawkextlib (The GNU Awk User’s Guide)

From Get docs

17.8 The gawkextlib Project

The gawkextlib project provides a number of gawk extensions, including one for processing XML files. This is the evolution of the original xgawk (XML gawk) project.

There are a number of extensions. Some of the more interesting ones are:

  • abort extension. It allows you to exit immediately from your awk program without running the END rules.
  • json extension. This serializes a multidimensional array into a JSON string, and can deserialize a JSON string into a gawk array. This extension is interesting since it is written in C++ instead of C.
  • MPFR library extension. This provides access to a number of MPFR functions that gawk’s native MPFR support does not.
  • Select extension. It provides functionality based on the select() system call.
  • XML parser extension, using the Expat XML parsing library

You can check out the code for the gawkextlib project using the Git distributed source code control system. The command is as follows:

git clone git:// gawkextlib-code

You will need to have the RapidJson JSON parser library installed in order to build and use the json extension.

You will need to have the Expat XML parser library installed in order to build and use the XML extension.

In addition, you must have the GNU Autotools installed (Autoconf, Automake, Libtool, and GNU gettext).

The simple recipe for building and testing gawkextlib is as follows. First, build and install gawk:

cd .../path/to/gawk/code
./configure --prefix=/tmp/newgawk     Install in /tmp/newgawk for now
make && make check                    Build and check that all is OK
make install                          Install gawk

Next, go to to download gawkextlib and any extensions that you would like to build. The README file at that site explains how to build the code. If you installed gawk in a non-standard location, you will need to specify ./configure --with-gawk=/path/to/gawk to find it. You may need to use the sudo utility to install both gawk and gawkextlib, depending upon how your system works.

If you write an extension that you wish to share with other gawk users, consider doing so through the gawkextlib project. See the project’s website for more information.