Pattern Action Summary (The GNU Awk User’s Guide)

From Get docs
Gawk/docs/latest/Pattern-Action-Summary


7.6 Summary

  • Pattern–action pairs make up the basic elements of an awk program. Patterns are either normal expressions, range expressions, or regexp constants; one of the special keywords BEGIN, END, BEGINFILE, or ENDFILE; or empty. The action executes if the current record matches the pattern. Empty (missing) patterns match all records.
  • I/O from BEGIN and END rules has certain constraints. This is also true, only more so, for BEGINFILE and ENDFILE rules. The latter two give you “hooks” into gawk’s file processing, allowing you to recover from a file that otherwise would cause a fatal error (such as a file that cannot be opened).
  • Shell variables can be used in awk programs by careful use of shell quoting. It is easier to pass a shell variable into awk by using the -v option and an awk variable.
  • Actions consist of statements enclosed in curly braces. Statements are built up from expressions, control statements, compound statements, input and output statements, and deletion statements.
  • The control statements in awk are if-else, while, for, and do-while. gawk adds the switch statement. There are two flavors of for statement: one for performing general looping, and the other for iterating through an array.
  • break and continue let you exit early or start the next iteration of a loop (or get out of a switch).
  • next and nextfile let you read the next record and start over at the top of your program or skip to the next input file and start over, respectively.
  • The exit statement terminates your program. When executed from an action (or function body), it transfers control to the END statements. From an END statement body, it exits immediately. You may pass an optional numeric value to be used as awk’s exit status.
  • Some predefined variables provide control over awk, mainly for I/O. Other variables convey information from awk to your program.
  • ARGC and ARGV make the command-line arguments available to your program. Manipulating them from a BEGIN rule lets you control how awk will process the provided data files.