Predefined variables.

awk variables are ususally referenced by name only.

The use of $ in front of a variable treats it like a pointer.

print NF - display the number of fields on a line.
print $NF - display contents of the last field on a line.

awk provides a number of useful predefined variables.
variablefunctionexample
FILENAME Contains the name of current data file being processed. Useful when user has specified multiple data files.
FS Field separator, identifies character that separates fields on line. Usually whitespace. FS=":" - treat each colon as a field separator.
FS=":+" - treat multiple consecutive colons as a singe field separator.
FS="[ \t]+" - treat multiple consecutive whitespace as a singe field separator.
NF Number of fields in current line.
BEGIN { max=0; }
{
  # remember the most fields used in the file
  if ( max < NF )
    { max = NF }
}
END { print max; }
  
NR Number of records read so far. If multiple data files provided, this will continue to accumulate for a grand total.
FNR File number of records. If working with multiple data files, this resets between data files.
RS Record separator - specifies record seperator, usuall new line, \n. Sometimes useful to specify alternatives based on data.
An active web page returns :

  mytext=data&pass=password

FS="="; RS="&"; 
OFS Output field separator. Default separator when working with print
BEGIN {  OFS=" and a "; }
{  print $1, $2; }
Data :
bob truck
sue monster-truck
bob and a truck sue and a monster-truck
ORS Output record separator - works with print.
Note that neither OFS or ORS work with printf.
BEGIN { ORS=":"; }
{ print $1; }
Data :
-rw-r--r--
-rwx------
lrwxrwxrwx
Output :
-rw-r--r--:-rwx------:lrwxrwxrwx:
$0 Represents the whole current record being processed.
$1-$n References the specified field on the current line.
If referenced field doesn't exist, will be assigned null.
Others There are additional less commonly used predefined variables.