October 2005
Intermediate to advanced
908 pages
46h 42m
English
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.
Read now
Unlock full access