aboutsummaryrefslogtreecommitdiffstats
path: root/gawk-info-5
diff options
context:
space:
mode:
Diffstat (limited to 'gawk-info-5')
-rw-r--r--gawk-info-5960
1 files changed, 0 insertions, 960 deletions
diff --git a/gawk-info-5 b/gawk-info-5
deleted file mode 100644
index fd8d7eec..00000000
--- a/gawk-info-5
+++ /dev/null
@@ -1,960 +0,0 @@
-Info file gawk-info, produced by Makeinfo, -*- Text -*- from input
-file gawk.texinfo.
-
-This file documents `awk', a program that you can use to select
-particular records in a file and perform operations upon them.
-
-Copyright (C) 1989 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Foundation.
-
-
-
-File: gawk-info, Node: User-modified, Next: Auto-set, Up: Special
-
-Special Variables That Control `awk'
-====================================
-
-This is a list of the variables which you can change to control how
-`awk' does certain things.
-
-`FS'
- `FS' is the input field separator (*note Field Separators::.).
- The value is a regular expression that matches the separations
- between fields in an input record.
-
- The default value is `" "', a string consisting of a single
- space. As a special exception, this value actually means that
- any sequence of spaces and tabs is a single separator. It also
- causes spaces and tabs at the beginning or end of a line to be
- ignored.
-
- You can set the value of `FS' on the command line using the `-F'
- option:
-
- awk -F, 'PROGRAM' INPUT-FILES
-
-`OFMT'
- This string is used by `awk' to control conversion of numbers to
- strings (*note Conversion::.). It works by being passed, in
- effect, as the first argument to the `sprintf' function. Its
- default value is `"%.6g"'.
-
-`OFS'
- This is the output field separator (*note Output Separators::.).
- It is output between the fields output by a `print' statement.
- Its default value is `" "', a string consisting of a single space.
-
-`ORS'
- This is the output record separator (*note Output
- Separators::.). It is output at the end of every `print'
- statement. Its default value is the newline character, often
- represented in `awk' programs as `\n'.
-
-`RS'
- This is `awk''s record separator (*note Records::.). Its
- default value is a string containing a single newline character,
- which means that an input record consists of a single line of
- text.
-
-`SUBSEP'
- `SUBSEP' is a subscript separator (*note Multi-dimensional::.).
- It has the default value of `"\034"', and is used to separate
- the parts of the name of a multi--dimensional array. Thus, if
- you access `foo[12,3]', it really accesses `foo["12\0343"]'.
-
-
-
-File: gawk-info, Node: Auto-set, Prev: User-modified, Up: Special
-
-Special Variables That Convey Information to You
-================================================
-
-This is a list of the variables that are set automatically by `awk'
-on certain occasions so as to provide information for your program.
-
-`ARGC'
-`ARGV'
- The command--line arguments available to `awk' are stored in an
- array called `ARGV'. `ARGC' is the number of command--line
- arguments present. `ARGV' is indexed from zero to `ARGC' - 1.
- For example:
-
- awk '{ print ARGV[$1] }' inventory-shipped BBS-list
-
- In this example, `ARGV[0]' contains `"awk"', `ARGV[1]' contains
- `"inventory-shipped"', and `ARGV[2]' contains `"BBS-list"'.
- `ARGC' is 3, one more than the index of the last element in
- `ARGV' since the elements are numbered from zero.
-
- Notice that the `awk' program is not treated as an argument.
- The `-f' `FILENAME' option, and the `-F' option, are also not
- treated as arguments for this purpose.
-
- Variable assignments on the command line *are* treated as
- arguments, and do show up in the `ARGV' array.
-
- Your program can alter `ARGC' the elements of `ARGV'. Each time
- `awk' reaches the end of an input file, it uses the next element
- of `ARGV' as the name of the next input file. By storing a
- different string there, your program can change which files are
- read. You can use `-' to represent the standard input. By
- storing additional elements and incrementing `ARGC' you can
- cause additional files to be read.
-
- If you decrease the value of `ARGC', that eliminates input files
- from the end of the list. By recording the old value of `ARGC'
- elsewhere, your program can treat the eliminated arguments as
- something other than file names.
-
- To eliminate a file from the middle of the list, store the null
- string (`""') into `ARGV' in place of the file's name. As a
- special feature, `awk' ignores file names that have been
- replaced with the null string.
-
-`ENVIRON'
- This is an array that contains the values of the environment.
- The array indices are the environment variable names; the values
- are the values of the particular environment variables. For
- example, `ENVIRON["HOME"]' might be `/u/close'. Changing this
- array does not affect the environment passed on to any programs
- that `awk' may spawn via redirection or the `system' function.
- (This may not work under operating systems other than MS-DOS,
- Unix, or GNU.)
-
-`FILENAME'
- This is the name of the file that `awk' is currently reading.
- If `awk' is reading from the standard input (in other words,
- there are no files listed on the command line), `FILENAME' is
- set to `"-"'. `FILENAME' is changed each time a new file is
- read (*note Reading Files::.).
-
-`FNR'
- `FNR' is the current record number in the current file. `FNR'
- is incremented each time a new record is read (*note Getline::.).
- It is reinitialized to 0 each time a new input file is started.
-
-`NF'
- `NF' is the number of fields in the current input record. `NF'
- is set each time a new record is read, when a new field is
- created, or when $0 changes (*note Fields::.).
-
-`NR'
- This is the number of input records `awk' has processed since
- the beginning of the program's execution. (*note Records::.).
- `NR' is set each time a new record is read.
-
-`RLENGTH'
- `RLENGTH' is the length of the string matched by the `match'
- function (*note String Functions::.). `RLENGTH' is set by
- invoking the `match' function. Its value is the length of the
- matched string, or -1 if no match was found.
-
-`RSTART'
- `RSTART' is the start of the string matched by the `match'
- function (*note String Functions::.). `RSTART' is set by
- invoking the `match' function. Its value is the position of the
- string where the matched string starts, or 0 if no match was
- found.
-
-
-
-File: gawk-info, Node: Sample Program, Next: Notes, Prev: Special, Up: Top
-
-Sample Program
-**************
-
-The following example is a complete `awk' program, which prints the
-number of occurrences of each word in its input. It illustrates the
-associative nature of `awk' arrays by using strings as subscripts.
-It also demonstrates the `for X in ARRAY' construction. Finally, it
-shows how `awk' can be used in conjunction with other utility
-programs to do a useful task of some complexity with a minimum of
-effort. Some explanations follow the program listing.
-
- awk '
- # Print list of word frequencies
- {
- for (i = 1; i <= NF; i++)
- freq[$i]++
- }
-
- END {
- for (word in freq)
- printf "%s\t%d\n", word, freq[word]
- }'
-
-The first thing to notice about this program is that it has two
-rules. The first rule, because it has an empty pattern, is executed
-on every line of the input. It uses `awk''s field--accessing
-mechanism (*note Fields::.) to pick out the individual words from the
-line, and the special variable `NF' (*note Special::.) to know how
-many fields are available.
-
-For each input word, an element of the array `freq' is incremented to
-reflect that the word has been seen an additional time.
-
-The second rule, because it has the pattern `END', is not executed
-until the input has been exhausted. It prints out the contents of
-the `freq' table that has been built up inside the first action.
-
-Note that this program has several problems that would prevent it
-from being useful by itself on real text files:
-
- * Words are detected using the `awk' convention that fields are
- separated by whitespace and that other characters in the input
- (except newlines) don't have any special meaning to `awk'. This
- means that punctuation characters count as part of words.
-
- * The `awk' language considers upper and lower case characters to
- be distinct. Therefore, `foo' and `Foo' will not be treated by
- this program as the same word. This is undesirable since in
- normal text, words are capitalized if they begin sentences, and
- a frequency analyzer should not be sensitive to that.
-
- * The output does not come out in any useful order. You're more
- likely to be interested in which words occur most frequently, or
- having an alphabetized table of how frequently each word occurs.
-
-The way to solve these problems is to use other operating system
-utilities to process the input and output of the `awk' script.
-Suppose the script shown above is saved in the file `frequency.awk'.
-Then the shell command:
-
- tr A-Z a-z < file1 | tr -cd 'a-z\012' \
- | awk -f frequency.awk \
- | sort +1 -nr
-
-produces a table of the words appearing in `file1' in order of
-decreasing frequency.
-
-The first `tr' command in this pipeline translates all the upper case
-characters in `file1' to lower case. The second `tr' command deletes
-all the characters in the input except lower case characters and
-newlines. The second argument to the second `tr' is quoted to
-protect the backslash in it from being interpreted by the shell. The
-`awk' program reads this suitably massaged data and produces a word
-frequency table, which is not ordered.
-
-The `awk' script's output is now sorted by the `sort' command and
-printed on the terminal. The options given to `sort' in this example
-specify to sort by the second field of each input line (skipping one
-field), that the sort keys should be treated as numeric quantities
-(otherwise `15' would come before `5'), and that the sorting should
-be done in descending (reverse) order.
-
-See the general operating system documentation for more information
-on how to use the `tr' and `sort' commands.
-
-
-
-File: gawk-info, Node: Notes, Next: Glossary, Prev: Sample Program, Up: Top
-
-Implementation Notes
-********************
-
-This appendix contains information mainly of interest to implementors
-and maintainers of `gawk'. Everything in it applies specifically to
-`gawk', and not to other implementations.
-
-* Menu:
-
-* Extensions:: Things`gawk' does that Unix `awk' does not.
-
-* Future Extensions:: Things likely to appear in a future release.
-
-* Improvements:: Suggestions for future improvements.
-
-* Manual Improvements:: Suggestions for improvements to this manual.
-
-
-
-File: gawk-info, Node: Extensions, Next: Future Extensions, Up: Notes
-
-GNU Extensions to the AWK Language
-==================================
-
-Several new features are in a state of flux. They are described here
-merely to document them somewhat, but they will probably change. We
-hope they will be incorporated into other versions of `awk', too.
-
-All of these features can be turned off either by compiling `gawk'
-with `-DSTRICT', or by invoking `gawk' as `awk'.
-
-The `AWKPATH' environment variable
- When opening a file supplied via the `-f' option, if the
- filename does not contain a `/', `gawk' will perform a "path
- search" for the file, similar to that performed by the shell.
- `gawk' gets its search path from the `AWKPATH' environment
- variable. If that variable does not exist, it uses the default
- path `".:/usr/lib/awk:/usr/local/lib/awk"'.
-
-Case Independent Matching
- Two new operators have been introduced, `~~', and `!~~'. These
- perform regular expression match and no-match operations that
- are case independent. In other words, `A' and `a' would both
- match `/a/'.
-
-The `-i' option
- This option causes the `~' and `!~' operators to behave like the
- `~~' and `!~~' operators described above.
-
-The `-v' option
- This option prints version information for this particular copy
- of `gawk'. This is so you can determine if your copy of `gawk'
- is up to date with respect to whatever the Free Software
- Foundation is currently distributing. It may disappear in a
- future version of `gawk'.
-
-
-
-File: gawk-info, Node: Future Extensions, Next: Improvements, Prev: Extensions, Up: Notes
-
-Extensions Likely To Appear In A Future Release
-===============================================
-
-Here are some more extensions that indicate the directions we are
-currently considering for `gawk'. Like the previous section, this
-section is also subject to change. None of these are implemented yet.
-
-The `IGNORECASE' special variable
- If `IGNORECASE' is non--zero, then *all* regular expression
- matching will be done in a case--independent fashion. The `-i'
- option and the `~~' and `!~~' operators will go away, as this
- mechanism generalizes those facilities.
-
-More Escape Sequences
- The ANSI C `\a', and `\x' escape sequences will be recognized.
- Unix `awk' does not recognize `\v', although `gawk' does.
-
-`RS' as a regexp
- The meaning of `RS' will be generalized along the lines of `FS'.
-
-Transliteration Functions
- We are planning on adding `toupper' and `tolower' functions
- which will take string arguments, and return strings where the
- case of each letter has been transformed to upper-- or
- lower--case respectively.
-
-Access To System File Descriptors
- `gawk' will recognize the special file names `/dev/stdin',
- `/dev/stdout', `/dev/stderr', and `/dev/fd/N' internally. These
- will allow access to inherited file descriptors from within an
- `awk' program.
-
-
-
-File: gawk-info, Node: Improvements, Next: Manual Improvements, Prev: Future Extensions, Up: Notes
-
-Suggestions for Future Improvements
-===================================
-
-Here are some projects that would--be `gawk' hackers might like to
-take on. They vary in size from a few days to a few weeks of
-programming, depending on which one you choose and how fast a
-programmer you are. Please send any improvements you write to the
-maintainers at the GNU project.
-
- 1. State machine regexp matcher: At present, `gawk' uses the
- backtracking regular expression matcher from the GNU subroutine
- library. If a regexp is really going to be used a lot of times,
- it is faster to convert it once to a description of a finite
- state machine, then run a routine simulating that machine every
- time you want to match the regexp. You could use the matching
- routines used by GNU `egrep'.
-
- 2. Compilation of `awk' programs: `gawk' uses a `Bison'
- (YACC--like) parser to convert the script given it into a syntax
- tree; the syntax tree is then executed by a simple recursive
- evaluator. Both of these steps incur a lot of overhead, since
- parsing can be slow (especially if you also do the previous
- project and convert regular expressions to finite state machines
- at compile time) and the recursive evaluator performs many
- procedure calls to do even the simplest things.
-
- It should be possible for `gawk' to convert the script's parse
- tree into a C program which the user would then compile, using
- the normal C compiler and a special `gawk' library to provide
- all the needed functions (regexps, fields, associative arrays,
- type coercion, and so on).
-
- An easier possibility might be for an intermediate phase of
- `awk' to convert the parse tree into a linear byte code form
- like the one used in GNU Emacs Lisp. The recursive evaluator
- would then be replaced by a straight line byte code interpreter
- that would be intermediate in speed between running a compiled
- program and doing what `gawk' does now.
-
-
-
-File: gawk-info, Node: Manual Improvements, Prev: Improvements, Up: Notes
-
-Suggestions For Future Improvements of This Manual
-==================================================
-
- 1. An error message section has not been included in this version
- of the manual. Perhaps some nice beta testers will document
- some of the messages for the future.
-
- 2. A summary page has not been included, as the ``man'', or help,
- page that comes with the `gawk' code should suffice.
-
- GNU only supports Info, so this manual itself should contain
- whatever forms of information it would be useful to have on an
- Info summary page.
-
- 3. A function and variable index has not been included as we are
- not sure what to put in it.
-
- 4. A section summarizing the differences between V7 `awk' and
- System V Release 4 `awk' would be useful for long--time `awk'
- hackers.
-
-
-
-File: gawk-info, Node: Glossary, Next: Index, Prev: Notes, Up: Top
-
-Glossary
-********
-
-Action
- A series of `awk' statements attached to a rule. If the rule's
- pattern matches an input record, the `awk' language executes the
- rule's action. Actions are always enclosed in curly braces.
-
-Amazing `awk' assembler
- Henry Spencer at the University of Toronto wrote a retargetable
- assembler completely as `awk' scripts. It is thousands of lines
- long, including machine descriptions for several 8--bit
- microcomputers. It is distributed with `gawk' and is a good
- example of a program that would have been better written in
- another language.
-
-Assignment
- An `awk' expression that changes the value of some `awk'
- variable or data object. An object that you can assign to is
- called an "lvalue".
-
-Built-in function
- The `awk' language provides built--in functions that perform
- various numerical and string computations. Examples are `sqrt'
- (for the square root of a number) and `substr' (for a substring
- of a string).
-
-C
- The system programming language that most of GNU is written in.
- The `awk' programming language has C--like syntax, and this
- manual points out similarities between `awk' and C when
- appropriate.
-
-Compound statement
- A series of `awk' statements, enclosed in curly braces.
- Compound statements may be nested.
-
-Concatenation
- Concatenating two strings means sticking them together, one
- after another, giving a new string. For example, the string
- `foo' concatenated with the string `bar' gives the string
- `foobar'.
-
-Conditional expression
- A relation that is either true or false, such as `(a < b)'.
- Conditional expressions are used in `if' and `while' statements,
- and in patterns to select which input records to process.
-
-Curly braces
- The characters `{' and `}'. Curly braces are used in `awk' for
- delimiting actions, compound statements, and function bodies.
-
-Data objects
- These are numbers and strings of characters. Numbers are
- converted into strings and vice versa, as needed.
-
-Escape Sequences
- A special sequence of characters used for describing
- non--printable characters, such as `\n' for newline, or `\033'
- for the ASCII ESC (escape) character.
-
-Field
- When `awk' reads an input record, it splits the record into
- pieces separated by whitespace (or by a separator regexp which
- you can change by setting the special variable `FS'). Such
- pieces are called fields.
-
-Format
- Format strings are used to control the appearance of output in
- the `printf' statement. Also, data conversions from numbers to
- strings are controlled by the format string contained in the
- special variable `OFMT'.
-
-Function
- A specialized group of statements often used to encapsulate
- general or program--specific tasks. `awk' has a number of
- built--in functions, and also allows you to define your own.
-
-`gawk'
- The GNU implementation of `awk'.
-
-`awk' language
- The language in which `awk' programs are written.
-
-`awk' program
- An `awk' program consists of a series of "patterns" and
- "actions", collectively known as "rules". For each input record
- given to the program, the program's rules are all processed in
- turn. `awk' programs may also contain function definitions.
-
-`awk' script
- Another name for an `awk' program.
-
-Input record
- A single chunk of data read in by `awk'. Usually, an `awk'
- input record consists of one line of text.
-
-Keyword
- In the `awk' language, a keyword is a word that has special
- meaning. Keywords are reserved and may not be used as variable
- names.
-
- The keywords are: `if', `else', `while', `do...while', `for',
- `for...in', `break', `continue', `delete', `next', `function',
- `func', and `exit'.
-
-Lvalue
- An expression that can appear on the left side of an assignment
- operator. In most languages, lvalues can be variables or array
- elements. In `awk', a field designator can also be used as an
- lvalue.
-
-Number
- A numeric valued data object. The `gawk' implementation uses
- double precision floating point to represent numbers.
-
-Pattern
- Patterns tell `awk' which input records are interesting to which
- rules.
-
- A pattern is an arbitrary conditional expression against which
- input is tested. If the condition is satisfied, the pattern is
- said to "match" the input record. A typical pattern might
- compare the input record against a regular expression.
-
-Range (of input lines)
- A sequence of consecutive lines from the input file. A pattern
- can specify ranges of input lines for `awk' to process, or it
- can specify single lines.
-
-Recursion
- When a function calls itself, either directly or indirectly. If
- this isn't clear, refer to the entry for ``recursion''.
-
-Redirection
- Redirection means performing input from other than the standard
- input stream, or output to other than the standard output stream.
-
- You can redirect the output of the `print' and `printf'
- statements to a file or a system command, using the `>', `>>',
- and `|' operators. You can redirect input to the `getline'
- statement using the `<' and `|' operators.
-
-Regular Expression
- See ``regexp''.
-
-Regexp
- Short for "regular expression". A regexp is a pattern that
- denotes a set of strings, possibly an infinite set. For
- example, the regexp `R.*xp' matches any string starting with the
- letter `R' and ending with the letters `xp'. In `awk', regexps
- are used in patterns and in conditional expressions.
-
-Rule
- A segment of an `awk' program, that specifies how to process
- single input records. A rule consists of a "pattern" and an
- "action". `awk' reads an input record; then, for each rule, if
- the input record satisfies the rule's pattern, `awk' executes
- the rule's action. Otherwise, the rule does nothing for that
- input record.
-
-Special Variable
- The variables `ARGC', `ARGV', `ENVIRON', `FILENAME', `FNR',
- `FS', `NF', `NR', `OFMT', `OFS', `ORS', `RLENGTH', `RSTART',
- `RS', `SUBSEP', have special meaning to `awk'. Changing some of
- them affects `awk''s running environment.
-
-Stream Editor
- A program that reads records from an input stream and processes
- them one or more at a time. This is in contrast with batch
- programs, which may expect to read their input files in entirety
- before starting to do anything, and with interactive programs,
- which require input from the user.
-
-String
- A datum consisting of a sequence of characters, such as `I am a
- string'. Constant strings are written with double--quotes in
- the `awk' language, and may contain "escape sequences".
-
-Whitespace
- A sequence of blank or tab characters occurring inside an input
- record or a string.
-
-
-
-File: gawk-info, Node: Index, Prev: Glossary, Up: Top
-
-Index
-*****
-
-* Menu:
-
-* #!: Executable Scripts.
-* -f option: Long.
-* `$NF', last field in record: Fields.
-* `$' (field operator): Fields.
-* `>>': Redirection.
-* `>': Redirection.
-* `BEGIN', special pattern: BEGIN/END.
-* `END', special pattern: BEGIN/END.
-* `awk' language: This Manual.
-* `awk' program: This Manual.
-* `break' statement: Break.
-* `close' statement for input: Close Input.
-* `close' statement for output: Close Output.
-* `continue' statement: Continue.
-* `delete' statement: Delete.
-* `exit' statement: Exit.
-* `for (x in ...)': Scanning an Array.
-* `for' statement: For.
-* `if' statement: If.
-* `next' statement: Next.
-* `print $0': Very Simple.
-* `printf' statement, format of: Basic Printf.
-* `printf', format-control characters: Format-Control.
-* `printf', modifiers: Modifiers.
-* `print' statement: Print.
-* `return' statement: Return Statement.
-* `while' statement: While.
-* `|': Redirection.
-* `BBS-list' file: The Files.
-* `inventory-shipped' file: The Files.
-* Accessing fields: Fields.
-* Acronym: History.
-* Action, curly braces: Actions.
-* Action, curly braces: Getting Started.
-* Action, default: Very Simple.
-* Action, definition of: Getting Started.
-* Action, general: Actions.
-* Action, separating statements: Actions.
-* Applications of `awk': When.
-* Arguments in function call: Function Calls.
-* Arguments, Command Line: Command Line.
-* Arithmetic operators: Arithmetic Ops.
-* Array assignment: Assigning Elements.
-* Array reference: Reference to Elements.
-* Arrays: Array Intro.
-* Arrays, definition of: Array Intro.
-* Arrays, deleting an element: Delete.
-* Arrays, determining presence of elements: Reference to Elements.
-* Arrays, multi-dimensional subscripts: Multi-dimensional.
-* Arrays, special `for' statement: Scanning an Array.
-* Assignment operators: Assignment Ops.
-* Associative arrays: Array Intro.
-* Backslash Continuation: Statements/Lines.
-* Basic function of `gawk': Getting Started.
-* Body of a loop: While.
-* Boolean expressions: Boolean Ops.
-* Boolean operators: Boolean Ops.
-* Boolean patterns: Boolean.
-* Built-in functions, list of: Built-in.
-* Built-in variables: Variables.
-* Calling a function: Function Calls.
-* Case sensitivity and gawk: Read Terminal.
-* Changing contents of a field: Changing Fields.
-* Changing the record separator: Records.
-* Closing files and pipes: Close Output.
-* Command Line: Command Line.
-* Command line formats: Running gawk.
-* Command line, setting `FS' on: Field Separators.
-* Comments: Comments.
-* Comparison expressions: Comparison Ops.
-* Comparison expressions as patterns: Comparison Patterns.
-* Compound statements: Actions.
-* Computed Regular Expressions: Regexp Usage.
-* Concatenation: Concatenation.
-* Conditional Patterns: Conditional Patterns.
-* Conditional expression: Conditional Exp.
-* Constants, types of: Constants.
-* Continuing statements on the next line: Statements/Lines.
-* Conversion of strings and numbers: Conversion.
-* Curly braces: Actions.
-* Curly braces: Getting Started.
-* Default action: Very Simple.
-* Default pattern: Very Simple.
-* Deleting elements of arrays: Delete.
-* Differences between `gawk' and `awk': Arithmetic Ops.
-* Differences between `gawk' and `awk': Constants.
-* Documenting `awk' programs: Comments.
-* Dynamic Regular Expressions: Regexp Usage.
-* Element assignment: Assigning Elements.
-* Element of array: Reference to Elements.
-* Emacs Lisp: When.
-* Empty pattern: Empty.
-* Escape sequence notation: Constants.
-* Examining fields: Fields.
-* Executable Scripts: Executable Scripts.
-* Expression, conditional: Conditional Exp.
-* Expressions: Actions.
-* Expressions, boolean: Boolean Ops.
-* Expressions, comparison: Comparison Ops.
-* Field separator, `FS': Field Separators.
-* Field separator, choice of: Field Separators.
-* Field separator, setting on command line: Field Separators.
-* Field, changing contents of: Changing Fields.
-* Fields: Fields.
-* Fields, negative-numbered: Non-Constant Fields.
-* Fields, semantics of: Field Separators.
-* Fields, separating: Field Separators.
-* Format specifier: Format-Control.
-* Format string: Basic Printf.
-* Formatted output: Printf.
-* Function call: Function Calls.
-* Function definitions: Actions.
-* Functions, user-defined: User-defined.
-* General input: Reading Files.
-* History of `awk': History.
-* How gawk works: Two Rules.
-* Increment operators: Increment Ops.
-* Input file, sample: The Files.
-* Input, `getline' function: Getline.
-* Input, general: Reading Files.
-* Input, multiple line records: Multiple.
-* Input, standard: Read Terminal.
-* Input, standard: Reading Files.
-* Interaction of `awk' with other programs: I/O Functions.
-* Invocation of `gawk': Command Line.
-* Language, `awk': This Manual.
-* Loop: While.
-* Loops, breaking out of: Break.
-* Lvalue: Assignment Ops.
-* Manual, using this: This Manual.
-* Metacharacters: Regexp Operators.
-* Mod function, semantics of: Arithmetic Ops.
-* Modifiers (in format specifiers): Modifiers.
-* Multiple line records: Multiple.
-* Multiple passes over data: Command Line.
-* Multiple statements on one line: Statements/Lines.
-* Negative-numbered fields: Non-Constant Fields.
-* Number of fields, `NF': Fields.
-* Number of records, `FNR': Records.
-* Number of records, `NR': Records.
-* Numerical constant: Constants.
-* Numerical value: Constants.
-* One-liners: One-liners.
-* Operator, Ternary: Conditional Patterns.
-* Operators, `$': Fields.
-* Operators, arithmetic: Arithmetic Ops.
-* Operators, assignment: Assignment Ops.
-* Operators, boolean: Boolean Ops.
-* Operators, increment: Increment Ops.
-* Operators, regular expression matching: Regexp Usage.
-* Operators, relational: Comparison Ops.
-* Operators, relational: Comparison Patterns.
-* Operators, string: Concatenation.
-* Operators, string-matching: Regexp Usage.
-* Options, Command Line: Command Line.
-* Output: Printing.
-* Output field separator, `OFS': Output Separators.
-* Output record separator, `ORS': Output Separators.
-* Output redirection: Redirection.
-* Output, formatted: Printf.
-* Output, piping: Redirection.
-* Passes, Multiple: Command Line.
-* Pattern, case sensitive: Read Terminal.
-* Pattern, comparison expressions: Comparison Patterns.
-* Pattern, default: Very Simple.
-* Pattern, definition of: Getting Started.
-* Pattern, empty: Empty.
-* Pattern, regular expressions: Regexp.
-* Patterns, `BEGIN': BEGIN/END.
-* Patterns, `END': BEGIN/END.
-* Patterns, Conditional: Conditional Patterns.
-* Patterns, boolean: Boolean.
-* Patterns, definition of: Patterns.
-* Patterns, types of: Patterns.
-* Pipes for output: Redirection.
-* Printing, general: Printing.
-* Program, `awk': This Manual.
-* Program, Self contained: Executable Scripts.
-* Program, definition of: Getting Started.
-* Programs, documenting: Comments.
-* Range pattern: Ranges.
-* Reading files, `getline' function: Getline.
-* Reading files, general: Reading Files.
-* Reading files, multiple line records: Multiple.
-* Record separator, `RS': Records.
-* Records, multiple line: Multiple.
-* Redirection of output: Redirection.
-* Reference to array: Reference to Elements.
-* Regexp: Regexp.
-* Regular Expressions, Computed: Regexp Usage.
-* Regular Expressions, Dynamic: Regexp Usage.
-* Regular expression matching operators: Regexp Usage.
-* Regular expression, metacharacters: Regexp Operators.
-* Regular expressions as patterns: Regexp.
-* Regular expressions, field separators and: Field Separators.
-* Relational operators: Comparison Patterns.
-* Relational operators: Comparison Ops.
-* Removing elements of arrays: Delete.
-* Rule, definition of: Getting Started.
-* Running gawk programs: Running gawk.
-* Sample input file: The Files.
-* Scanning an array: Scanning an Array.
-* Script, definition of: Getting Started.
-* Scripts, Executable: Executable Scripts.
-* Scripts, Shell: Executable Scripts.
-* Self contained Programs: Executable Scripts.
-* Separator character, choice of: Field Separators.
-* Shell Scripts: Executable Scripts.
-* Single quotes, why they are needed: One-shot.
-* Special variables, user modifiable: User-modified.
-* Standard input: Read Terminal.
-* Standard input: Reading Files.
-* Statements: Statements.
-* Statements: Actions.
-* String constants: Constants.
-* String operators: Concatenation.
-* String value: Constants.
-* String-matching operators: Regexp Usage.
-* Subscripts, multi-dimensional in arrays: Multi-dimensional.
-* Ternary Operator: Conditional Patterns.
-* Use of comments: Comments.
-* User-defined functions: User-defined.
-* User-defined variables: Variables.
-* Uses of `awk': Preface.
-* Using this manual: This Manual.
-* Variables, built-in: Variables.
-* Variables, user-defined: Variables.
-* What is `awk': Preface.
-* When to use `awk': When.
-* file, `awk' program: Long.
-* patterns, range: Ranges.
-* program file: Long.
-* regexp search operators: Regexp Usage.
-* running long programs: Long.
-
-
- 
-Tag Table:
-Node: Top918
-Node: Preface2804
-Node: History4267
-Node: License5644
-Node: This Manual18989
-Node: The Files20330
-Node: Getting Started22914
-Node: Very Simple24249
-Node: Two Rules26030
-Node: More Complex28066
-Node: Running gawk30908
-Node: One-shot31827
-Node: Read Terminal32945
-Node: Long33862
-Node: Executable Scripts34991
-Node: Command Line36534
-Node: Comments40168
-Node: Statements/Lines41067
-Node: When43498
-Node: Reading Files45420
-Node: Records47119
-Node: Fields49902
-Node: Non-Constant Fields52789
-Node: Changing Fields54591
-Node: Field Separators57302
-Node: Multiple62004
-Node: Assignment Options64393
-Node: Getline65608
-Node: Close Input74958
-Node: Printing76023
-Node: Print76748
-Node: Print Examples78712
-Node: Output Separators80751
-Node: Redirection82417
-Node: Close Output85886
-Node: Printf88132
-Node: Basic Printf88908
-Node: Format-Control90261
-Node: Modifiers91806
-Node: Printf Examples93108
-Node: One-liners95707
-Node: Patterns97642
-Node: Empty100130
-Node: Regexp100402
-Node: Regexp Usage101173
-Node: Regexp Operators102947
-Node: Comparison Patterns107890
-Node: Ranges109336
-Node: BEGIN/END110722
-Node: Boolean113151
-Node: Conditional Patterns115605
-Node: Actions116105
-Node: Expressions117435
-Node: Constants119124
-Node: Variables121097
-Node: Arithmetic Ops122454
-Node: Concatenation123840
-Node: Comparison Ops124569
-Node: Boolean Ops125973
-Node: Assignment Ops128266
-Node: Increment Ops131817
-Node: Conversion134112
-Node: Conditional Exp136066
-Node: Function Calls137384
-Node: Statements139939
-Node: If141253
-Node: While142627
-Node: Do144232
-Node: For145265
-Node: Break148306
-Node: Continue149848
-Node: Next151476
-Node: Exit152985
-Node: Arrays154514
-Node: Array Intro155624
-Node: Reference to Elements159227
-Node: Assigning Elements161115
-Node: Array Example161615
-Node: Scanning an Array163336
-Node: Delete165642
-Node: Multi-dimensional166529
-Node: Multi-scanning169746
-Node: Built-in171303
-Node: Numeric Functions172806
-Node: String Functions176601
-Node: I/O Functions183717
-Node: User-defined185189
-Node: Definition Syntax185834
-Node: Function Example187928
-Node: Function Caveats189034
-Node: Return Statement191386
-Node: Special193612
-Node: User-modified194478
-Node: Auto-set196511
-Node: Sample Program200558
-Node: Notes204316
-Node: Extensions204909
-Node: Future Extensions206490
-Node: Improvements207922
-Node: Manual Improvements210034
-Node: Glossary210928
-Node: Index217934