File: gawk.info, Node: Getting Started, Next: Invoking Gawk, Prev: Preface, Up: Top 1 Getting Started with 'awk' **************************** The basic function of 'awk' is to search files for lines (or other units of text) that contain certain patterns. When a line matches one of the patterns, 'awk' performs specified actions on that line. 'awk' continues to process input lines in this way until it reaches the end of the input files. Programs in 'awk' are different from programs in most other languages, because 'awk' programs are "data driven" (i.e., you describe the data you want to work with and then what to do when you find it). Most other languages are "procedural"; you have to describe, in great detail, every step the program should take. When working with procedural languages, it is usually much harder to clearly describe the data your program will process. For this reason, 'awk' programs are often refreshingly easy to read and write. When you run 'awk', you specify an 'awk' "program" that tells 'awk' what to do. The program consists of a series of "rules" (it may also contain "function definitions", an advanced feature that we will ignore for now; *note User-defined::). Each rule specifies one pattern to search for and one action to perform upon finding the pattern. Syntactically, a rule consists of a "pattern" followed by an "action". The action is enclosed in braces to separate it from the pattern. Newlines usually separate rules. Therefore, an 'awk' program looks like this: PATTERN { ACTION } PATTERN { ACTION } ... * Menu: * Running gawk:: How to run 'gawk' programs; includes command-line syntax. * Sample Data Files:: Sample data files for use in the 'awk' programs illustrated in this Info file. * Very Simple:: A very simple example. * Two Rules:: A less simple one-line example using two rules. * More Complex:: A more complex example. * Statements/Lines:: Subdividing or combining statements into lines. * Other Features:: Other Features of 'awk'. * When:: When to use 'gawk' and when to use other things. * Intro Summary:: Summary of the introduction.