====== AWK - AWK Output ====== Assuming a file, **test.txt** exists with the following contents: 10 Peter Terence Roux 45 11 Virginia Genevieve Roux 45 12 Felix Devon Roux 5 13 David Bruce Stevenson 48 14 Bob James Smith 16 48 Adam Winter Ridley 23 ---- ===== Display Tidy Output ===== Multiple commands can be passed together. awk '/45/ {print $2,$3,$4} {print $1": "$5"\n"}' test.txt returns: Peter Terence Roux 10: 45 Virginia Genevieve Roux 11: 45 12: 5 13: 48 14: 16 48: 23 **NOTE:** This inserts a colon and a space and comma between $1 and $5. It also inserts new line after each two-line display. ---- Certain escape sequences are supported, including: ^Character^Details^ |\\|A literal backslash.| |\b|Backspace.| |\f|Formfeed.| |\n|New line.| |\r|Carriage return.| |\t|Horizontal tab.| |\v|Vertical tab.| |\xhh|Hex digits where hh represents the hex digits. E.g. \x2F| ---- ===== Adding Text ===== Additional text can be added to lines. awk '/45/ {print "NAME: "$2,$3,$4 "\tAGE: "$5}' test.txt returns: NAME: Peter Terence Roux AGE: 45 NAME: Virginia Genevieve Roux AGE: 45 **NOTE:** The values between double quotes can be anything. ---- ===== Advanced Text Output ===== awk '/45/ {printf ("%s %d %x %s\n", $2,$5,$5,"x")}' test.txt returns: Peter 45 2d x Virginia 45 2d x **NOTE:** The **printf** command can be used to handle more complex output requirements. This is the list of specifications supported by the printf command: ^Specification^Details^ |%c|Prints a single ASCII character.| |%d|Prints a decimal number.| |%e|Prints a scientific notation representation of numbers.| |%f|Prints a floating-point representation.| |%g|Prints %e or %f; whichever is shorter.| |%o|Prints an unsigned octal number.| |%s|Prints an ASCII string.| |%x|Prints an unsigned hexadecimal number.| |%%|Prints a percent sign; no conversion is performed.| ----