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.
gawk
’s
native MPFR support does not.
select()
system call.
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://git.code.sf.net/p/gawkextlib/code 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 https://sourceforge.net/projects/gawkextlib/files 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.