11.7. User-Defined Functions

 < Day Day Up > 

POSIX awk 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 that 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.

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


     < Day Day Up > 


    Unix in a Nutshell
    Unix in a Nutshell, Fourth Edition
    ISBN: 0596100299
    EAN: 2147483647
    Year: 2005
    Pages: 201

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