Section 11.7. User-Defined Functions


11.7. User-Defined Functions

gawk allows you to define your own functions. This makes it easy to encapsulate sequences of steps that need to be repeated into a single place and reuse the code from anywhere in your program.

The following function capitalizes each word in a string. It has one parameter, named input, and five local variables, which are written as extra parameters:

     # capitalize each word in a string     function capitalize(input, result, words, n, i, w)     {        result = ""        n = split(input, words, " ")        for (i = 1; i <= n; i++) {             w = words[i]             w = toupper(substr(w, 1, 1)) substr(w, 2)             if (i > 1)                      result = result " "             result = result w        }        return result     }           # main program, for testing     { print capitalize($0) } 

With this input data:

     A test line with words and numbers like 12 on it. 

This program produces:

     A Test Line With Words And Numbers Like 12 On It. 

NOTE

For user-defined functions, no space is allowed between the function name and the left parenthesis when the function is called.



Linux in a Nutshell
Linux in a Nutshell
ISBN: 0596154488
EAN: 2147483647
Year: 2004
Pages: 147

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net