Previous  Table of Contents  Next 
Logical Operators
You can use logical operators to combine expressions to form logical expressions. There are three logical operators. They are listed in the following table.


Operator  Function 



&&  Logical AND. For instance,
if ( ( NR > 10 ) && ( NF > 5 ) ) print prints each line after line 10 that has five or more fields. 
  Logical OR. For example,
if ( ( NR < 10 )  ( NF > 7 ) ) print prints each line before line 10 or any line with more than seven fields. 
!  Logical NOT. For instance,
if ! ( NF == 6 ) print prints each line that does not have six fields. 

The logical operators may be followed by a newline. This allows for more readable statements when multiple logical operators are used in the same statement.
Increment and Decrement Operators
As in the C programming language, nawk also provides the unary increment and decrement operators. You use these two operators to increment number variables and decrement them.


Operator  Function 



++  Increment the value by 1. For example,
i++ is the same as i = i + 1. 
  Decrement the value by 1. 

Conditional Expressions
The conditional expression is used for simple if, then, else statements or conditions. The general format of a conditional expression is:
expr1 ? expr2 : expr3
where expr1 is evaluated and if true value of expr2 is used, else the value of expr3 is used. For example,
print $1 == 1 ? $2 : $3
prints the value of field two ($2) if field one ($1) is equal to 1, else the value of field 3 ($3) is printed.
Functions
There are three different categories for functions. The builtin arithmetic functions, builtin string functions, and the userdefinable functions. Functions are often referred to as subroutines in some programming languages. They allow you to write one set of statements and then reference them multiple times from different locations in the program. They also provide a means of making your program more understandable and readable.
Arithmetic Functions The arithmetic functions perform basic mathematical processing.


Function  Value Returned 



atan2(y,x)  Returns the arctangent of y/x in the range pi to pi. 
cos(x)  Returns the cosine of x, with x being in radians. 
exp(x)  Returns the value of ex. 
int(x)  Returns the integer value of x. Truncates x. 
log(x)  Returns the natural (base e) logarithm of x. 
rand(!)  Returns a random number r, 0 <= r < 1. 
sin(x)  Returns the sine of x, with x being in radians. 
sqrt(x)  Returns the square root of x. 
srand(x)  Uses x as the new seed for the rand() function. 

String Functions The string functions provide basic string manipulation functions. The following table describes the functions.


Function  Value Returned 



delete array [element]  Deletes the specified element of the array. 
gsub(r,s)  Substitutes s in place of r globally in $0 and returns the number of substitutions made. 
gsub(r,s,t)  Substitutes s in place of r globally in sting t and returns the number of substitutions made. 
index(s,t)  Returns the position where string t first occurs in string s. Returns 0 if t is not present. 
length(s)  Returns the number of characters in s. 
match(s,r)  Searches s for a substring matching r. The index of r is returned or 0. Sets the RSTART and RLENGTH variables. 
split(s,a)  Splits string s into elements of array a based on fields defined by the field separator specified by FS. 
split(s,a,fs)  Splits string s into elements of array a based on fields defined by the field separator fs. 
sprintf(fmt,exprlist)  Returns the exprlist formatted according to the format string fmt. 
sub(r,s)  Searches $0 for the longest substring matching string r and replaces with string s. 
sub(r,s,t)  Search string t for the longest substring matching string r and replace with string s. 
substr(s,p)  Returns the suffix of s starting at position p. 
substr(s,p,n)  Returns the substring of s of length n starting at position p. 

UserDefined Functions In addition to the builtin functions, nawk provides you with the ability to define your own functions. The format of a function is
function name( parameterlist ) { statements }
Note that there cannot be any spaces between the name of the function and the left parenthesis. Functions can be defined anywhere a patternaction statement is found. Functions provide a way to perform the same code multiple times without rewriting the code multiple times.
The return statement can be used to exit a function but is not necessary. The statements within the function are executed and when the last statement completes execution, the function is exited and control is returned to the line after the function call was made.
Previous  Table of Contents  Next 