------------------------------------------------------------
WHAT IS RunAWK:
runawk is a small wrapper for the AWK interpreter that helps one
write standalone AWK scripts. Its main feature is to provide a
module/library system for AWK which is somewhat similar to Perl's
"use" command. It also allows you to select a preferred AWK
interpreter and to setup the environment for your scripts. It also
provides other helpful features.
Dozens of <modules>.awk are also provided.
------------------------------------------------------------
SOURCES:
MIT licensed
http://sourceforge.net/projects/runawk
http://freshmeat.net/projects/runawk
------------------------------------------------------------
MAJOR CHANGES IN RUNAWK-0.18.0:
Makefile:
!!! "install-dirs" target has been renamed to "installdirs" !!!
- At compile time MODULESDIR can contain a *list* of
colon-separated directories,
e.g. /usr/local/share/runawk:/usr/local/share/awk
- power_getopt.awk, alt_getopt.awk and init_getopt.awk:
- Support for multiply applied options, e.g. -vvv for increasing
verbosity level. If option without arguments is multiply
applied, getarg() function returns a number of times it was
applied, not just 0 or 1.
New modules:
- init_getopt.awk using alt_getopt.awk and used by power_getopt.awk.
Its goal is to initialize `long_opts' and `long_opts' variables
but not run `getopt' function.
- heapsort.awk - heapsort :-)
- quicksort.awk - quicksort :-)
- sort.awk - either heapsort or quicksort,
the default is heapsort.
Unfortunately GAWK's asort() and asorti() functions
do *not* satisfy my needs. Another (and more important) reason
is a portability.
Improvements, clean-ups and fixes in regression tests.
runawk-0-18-0 was successfully tested on the following platforms:
NetBSD-5.0/x86, NetBSD-2.0/alpha, OpenBSD-4.5/x86,
FreeBSD-7.1/x86, FreeBSD-7.1/spark, Linux/x86 and
Darwin/ppc.
------------------------------------------------------------
MODULES PROVIDED BY RUNAWK:
abort.awk, alt_assert.awk
- power abort() and assert()
alt_join.awk - join :-)
braceexpand.awk - awk equivalent to shell's braceexpand functionality
basename.awk, dirname.awk
- equivalents to basename(1) and dirname(1)
embed_str.awk - reads strings from AWK code
exitnow.awk -
has_prefix.awk, has_suffix.awk
- trivial string functions
match_br.awk - find pair closed brackets in a string
max.awk, min.awk, isnum.awk, abs.awk
- trivial math functions
modinfo.awk - routines to get an information about modules that
are in use
multisub.awk - another replacement functions
pow.awk - synonym for ^
init_getopt.awk, alt_getopt.awk, power_getopt.awk
- POSIX/SUS compatible routines
for handling options EASILY ;-)
readfile.awk - read an entire file into variable
runcmd.awk - safe wrapper over system()
shquote.awk - escapes shell's special characters
heapsort.awk, quicksort.awk, sort.awk
- sorting functions
str2regexp.awk - string to regexp routines
tokenre.awk - alternative mechanism for separating input into tokens
xclose.awk, xgetline.awk, xsystem.awk
- functions to write robust programs
--
Best regards, Aleksey Cheusov.