gawk: This Manual

 
 Using This Book
 ===============
 
 The term 'awk' refers to a particular program as well as to the language
 you use to tell this program what to do.  When we need to be careful, we
 call the language "the 'awk' language," and the program "the 'awk'
 utility."  This Info file explains both how to write programs in the
 'awk' language and how to run the 'awk' utility.  The term "'awk'
 program" refers to a program written by you in the 'awk' programming
 language.
 
    Primarily, this Info file explains the features of 'awk' as defined
 in the POSIX standard.  It does so in the context of the 'gawk'
 implementation.  While doing so, it also attempts to describe important
 differences between 'gawk' and other 'awk' implementations.(1)  Finally,
 it notes any 'gawk' features that are not in the POSIX standard for
 'awk'.
 
    There are sidebars scattered throughout the Info file.  They add a
 more complete explanation of points that are relevant, but not likely to
 be of interest on first reading.  All appear in the index, under the
 heading "sidebar."
 
    Most of the time, the examples use complete 'awk' programs.  Some of
 the more advanced minor nodes show only the part of the 'awk' program
 that illustrates the concept being described.
 
    Although this Info file is aimed principally at people who have not
 been exposed to 'awk', there is a lot of information here that even the
 'awk' expert should find useful.  In particular, the description of
 POSIX 'awk' and the example programs in SeeLibrary Functions, and
 in SeeSample Programs, should be of interest.
 
    This Info file is split into several parts, as follows:
 
    * Part I describes the 'awk' language and the 'gawk' program in
      detail.  It starts with the basics, and continues through all of
      the features of 'awk'.  It contains the following chapters:
 
         - SeeGetting Started, provides the essentials you need to
           know to begin using 'awk'.
 
         - SeeInvoking Gawk, describes how to run 'gawk', the
           meaning of its command-line options, and how it finds 'awk'
           program source files.
 
         - SeeRegexp, introduces regular expressions in general, and
           in particular the flavors supported by POSIX 'awk' and 'gawk'.
 
         - SeeReading Files, describes how 'awk' reads your data.
           It introduces the concepts of records and fields, as well as
           the 'getline' command.  I/O redirection is first described
           here.  Network I/O is also briefly introduced here.
 
         - SeePrinting, describes how 'awk' programs can produce
           output with 'print' and 'printf'.
 
         - SeeExpressions, describes expressions, which are the
           basic building blocks for getting most things done in a
           program.
 
         - SeePatterns and Actions, describes how to write patterns
           for matching records, actions for doing something when a
           record is matched, and the predefined variables 'awk' and
           'gawk' use.
 
         - SeeArrays, covers 'awk''s one-and-only data structure:
           the associative array.  Deleting array elements and whole
           arrays is described, as well as sorting arrays in 'gawk'.  The
           major node also describes how 'gawk' provides arrays of
           arrays.
 
         - SeeFunctions, describes the built-in functions 'awk' and
           'gawk' provide, as well as how to define your own functions.
           It also discusses how 'gawk' lets you call functions
           indirectly.
 
    * Part II shows how to use 'awk' and 'gawk' for problem solving.
      There is lots of code here for you to read and learn from.  This
      part contains the following chapters:
 
         - SeeLibrary Functions, provides a number of functions
           meant to be used from main 'awk' programs.
 
         - SeeSample Programs, provides many sample 'awk' programs.
 
      Reading these two chapters allows you to see 'awk' solving real
      problems.
 
    * Part III focuses on features specific to 'gawk'.  It contains the
      following chapters:
 
         - SeeAdvanced Features, describes a number of advanced
           features.  Of particular note are the abilities to control the
           order of array traversal, have two-way communications with
           another process, perform TCP/IP networking, and profile your
           'awk' programs.
 
         - SeeInternationalization, describes special features for
           translating program messages into different languages at
           runtime.
 
         - SeeDebugger, describes the 'gawk' debugger.
 
         - SeeArbitrary Precision Arithmetic, describes advanced
           arithmetic facilities.
 
         - SeeDynamic Extensions, describes how to add new variables
           and functions to 'gawk' by writing extensions in C or C++.
 
    * Part IV provides the appendices, the Glossary, and two licenses
      that cover the 'gawk' source code and this Info file, respectively.
      It contains the following appendices:
 
         - SeeLanguage History, describes how the 'awk' language has
           evolved since its first release to the present.  It also
           describes how 'gawk' has acquired features over time.
 
         - SeeInstallation, describes how to get 'gawk', how to
           compile it on POSIX-compatible systems, and how to compile and
           use it on different non-POSIX systems.  It also describes how
           to report bugs in 'gawk' and where to get other freely
           available 'awk' implementations.
 
         - SeeNotes, describes how to disable 'gawk''s extensions,
           as well as how to contribute new code to 'gawk', and some
           possible future directions for 'gawk' development.
 
         - SeeBasic Concepts, provides some very cursory background
           material for those who are completely unfamiliar with computer
           programming.
 
           The SeeGlossary, defines most, if not all, of the
           significant terms used throughout the Info file.  If you find
           terms that you aren't familiar with, try looking them up here.
 
         - SeeCopying, and SeeGNU Free Documentation License,
           present the licenses that cover the 'gawk' source code and
           this Info file, respectively.
 
    ---------- Footnotes ----------
 
    (1) All such differences appear in the index under the entry
 "differences in 'awk' and 'gawk'."