Freely Available awks
There are three versions of awk whose source code is freely available. They are the Bell Labs awk, GNU awk, and mawk, by Michael Brennan. This section discusses the extensions that are common to two or more of them, and then looks at each version in detail and describes how to obtain it.
This section discusses extensions to the awk language that are available in two or more of the freely available awks.
Deleting all elements of an array
All three free awks extend the delete statement, making it possible to delete all the elements of an array at one time. The syntax is:
Normally, to delete every element from an array, you have to use a loop, like this.
for (i in data) delete data[i]
With the extended version of the delete statement, you can simply use
This is particularly useful for arrays with lots of subscripts; this version is considerably faster than the one using a loop.
Even though it no longer has any elements, you cannot use the array name as a simple variable. Once an array, always an array.
This extension appeared first in gawk, then in mawk and the Bell Labs awk.
Obtaining individual characters
All three awks extend field splitting and array splitting as follows. If the value of FS is the empty string, then each character of the input record becomes a separate field. This greatly simplifies cases where it’s necessary to work with individual characters.
Similarly, if the third argument to the split( ) function ...