summaryrefslogtreecommitdiffstats
path: root/development/mawk/README
blob: fbf82b010da1424ab93898ed8c8e1a22e6201cd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
mawk (fast awk implementation)

mawk (Mike's AWK) is an interpreter for the AWK Programming
Language. It's a very fast AWK implementation based on a bytecode
interpreter. Originally written by Mike Brennan, mawk is currently
maintained by Thomas E. Dickey.

The AWK language is useful for manipulation of data files, text
retrieval and processing, and for prototyping and experimenting with
algorithms. mawk is a new awk meaning it implements the AWK language as
defined in Aho, Kernighan and Weinberger, The AWK Programming Language,
Addison-Wesley Publishing, 1988.

mawk conforms to the Posix 1003.2 (draft 11.3) definition of the AWK
language which contains a few features not described in the AWK book,
and mawk provides a small number of extensions.

This build does not conflict with Slackware's own awk (from the gawk
package).

By default, mawk is built using its own built-in regular expression
engine. There are some slight differences between this and the glibc
regular expression engine:

- Embedded NUL characters are supported by the built-in engine. For
  instance, you can use the hex escape \x00 to match a NUL character.
  glibc regexes don't support this.

- POSIX brace syntax is NOT supported by the built-in engine. For
  instance, /a{3}/ to match "aaa" but not "a" or "aa". glibc regexes do
  support this.

If you require the glibc engine, export BUILTIN_REGEX=no in the script's
environment.

The default version in the .info file is 1.3.4, which is a stable
release from 2009. If you'd like to (or need to) build one of the newer
'snapshot' releases, get the source from:

ftp://ftp.invisible-island.net/mawk/

...and export VERSION in the environment. Notice the filenames look
like e.g. "mawk-1.3.4-20171017.tgz". Slackware version numbers can't
contain the hyphen, so use an underscore instead. Example:

# export "VERSION=1.3.4_20171017"