"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "doc/gawk.info" between
gawk-5.0.1.tar.xz and gawk-5.1.0.tar.xz

About: GNU awk - pattern scanning and processing language.

gawk.info  (gawk-5.0.1.tar.xz):gawk.info  (gawk-5.1.0.tar.xz)
File: gawk.info, Node: Top, Next: Foreword3, Up: (dir) File: gawk.info, Node: Top, Next: Foreword3, Up: (dir)
General Introduction General Introduction
******************** ********************
This file documents 'awk', a program that you can use to select This file documents 'awk', a program that you can use to select
particular records in a file and perform operations upon them. particular records in a file and perform operations upon them.
Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2019 Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2020
Free Software Foundation, Inc. Free Software Foundation, Inc.
This is Edition 5.0 of 'GAWK: Effective AWK Programming: A User's This is Edition 5.1 of 'GAWK: Effective AWK Programming: A User's
Guide for GNU Awk', for the 5.0.1 (or later) version of the GNU Guide for GNU Awk', for the 5.1.0 (or later) version of the GNU
implementation of AWK. implementation of AWK.
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License", with the Invariant Sections being "GNU General Public License", with the
Front-Cover Texts being "A GNU Manual", and with the Back-Cover Texts as Front-Cover Texts being "A GNU Manual", and with the Back-Cover Texts as
in (a) below. A copy of the license is included in the section entitled in (a) below. A copy of the license is included in the section entitled
"GNU Free Documentation License". "GNU Free Documentation License".
skipping to change at line 175 skipping to change at line 175
line. line.
* Full Line Fields:: Making the full line be a single * Full Line Fields:: Making the full line be a single
field. field.
* Field Splitting Summary:: Some final points and a summary table. * Field Splitting Summary:: Some final points and a summary table.
* Constant Size:: Reading constant width data. * Constant Size:: Reading constant width data.
* Fixed width data:: Processing fixed-width data. * Fixed width data:: Processing fixed-width data.
* Skipping intervening:: Skipping intervening fields. * Skipping intervening:: Skipping intervening fields.
* Allowing trailing data:: Capturing optional trailing data. * Allowing trailing data:: Capturing optional trailing data.
* Fields with fixed data:: Field values with fixed-width data. * Fields with fixed data:: Field values with fixed-width data.
* Splitting By Content:: Defining Fields By Content * Splitting By Content:: Defining Fields By Content
* More CSV:: More on CSV files.
* Testing field creation:: Checking how 'gawk' is * Testing field creation:: Checking how 'gawk' is
splitting records. splitting records.
* Multiple Line:: Reading multiline records. * Multiple Line:: Reading multiline records.
* Getline:: Reading files under explicit program * Getline:: Reading files under explicit program
control using the 'getline' control using the 'getline'
function. function.
* Plain Getline:: Using 'getline' with no * Plain Getline:: Using 'getline' with no
arguments. arguments.
* Getline/Variable:: Using 'getline' into a variable. * Getline/Variable:: Using 'getline' into a variable.
* Getline/File:: Using 'getline' from a file. * Getline/File:: Using 'getline' from a file.
skipping to change at line 497 skipping to change at line 498
* Breakpoint Control:: Control of Breakpoints. * Breakpoint Control:: Control of Breakpoints.
* Debugger Execution Control:: Control of Execution. * Debugger Execution Control:: Control of Execution.
* Viewing And Changing Data:: Viewing and Changing Data. * Viewing And Changing Data:: Viewing and Changing Data.
* Execution Stack:: Dealing with the Stack. * Execution Stack:: Dealing with the Stack.
* Debugger Info:: Obtaining Information about the * Debugger Info:: Obtaining Information about the
Program and the Debugger State. Program and the Debugger State.
* Miscellaneous Debugger Commands:: Miscellaneous Commands. * Miscellaneous Debugger Commands:: Miscellaneous Commands.
* Readline Support:: Readline support. * Readline Support:: Readline support.
* Limitations:: Limitations and future plans. * Limitations:: Limitations and future plans.
* Debugging Summary:: Debugging summary. * Debugging Summary:: Debugging summary.
* Global Namespace:: The global namespace in standard 'awk'. * Global Namespace:: The global namespace in standard
'awk'.
* Qualified Names:: How to qualify names with a namespace. * Qualified Names:: How to qualify names with a namespace.
* Default Namespace:: The default namespace. * Default Namespace:: The default namespace.
* Changing The Namespace:: How to change the namespace. * Changing The Namespace:: How to change the namespace.
* Naming Rules:: Namespace and Component Naming Rules. * Naming Rules:: Namespace and Component Naming Rules.
* Internal Name Management:: How names are stored internally. * Internal Name Management:: How names are stored internally.
* Namespace Example:: An example of code using a namespace. * Namespace Example:: An example of code using a namespace.
* Namespace And Features:: Namespaces and other 'gawk' features. * Namespace And Features:: Namespaces and other 'gawk'
features.
* Namespace Summary:: Summarizing namespaces. * Namespace Summary:: Summarizing namespaces.
* Computer Arithmetic:: A quick intro to computer math. * Computer Arithmetic:: A quick intro to computer math.
* Math Definitions:: Defining terms used. * Math Definitions:: Defining terms used.
* MPFR features:: The MPFR features in 'gawk'. * MPFR features:: The MPFR features in 'gawk'.
* FP Math Caution:: Things to know. * FP Math Caution:: Things to know.
* Inexactness of computations:: Floating point math is not exact. * Inexactness of computations:: Floating point math is not exact.
* Inexact representation:: Numbers are not exactly represented. * Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values. * Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go. * Errors accumulate:: Errors get bigger as they go.
* Getting Accuracy:: Getting more accuracy takes some work. * Getting Accuracy:: Getting more accuracy takes some work.
skipping to change at line 877 skipping to change at line 880
* This Manual:: Using this Info file. Includes sample * This Manual:: Using this Info file. Includes sample
input files that you can use. input files that you can use.
* Conventions:: Typographical Conventions. * Conventions:: Typographical Conventions.
* Manual History:: Brief history of the GNU project and this * Manual History:: Brief history of the GNU project and this
Info file. Info file.
* How To Contribute:: Helping to save the world. * How To Contribute:: Helping to save the world.
* Acknowledgments:: Acknowledgments. * Acknowledgments:: Acknowledgments.
---------- Footnotes ---------- ---------- Footnotes ----------
(1) The 2008 POSIX standard is accessible online at (1) The 2018 POSIX standard is accessible online at
<http://www.opengroup.org/onlinepubs/9699919799/>. <https://pubs.opengroup.org/onlinepubs/9699919799/>.
(2) These utilities are available on POSIX-compliant systems, as well (2) These utilities are available on POSIX-compliant systems, as well
as on traditional Unix-based systems. If you are using some other as on traditional Unix-based systems. If you are using some other
operating system, you still need to be familiar with the ideas of I/O operating system, you still need to be familiar with the ideas of I/O
redirection and pipes. redirection and pipes.
(3) Some other, obsolete systems to which 'gawk' was once ported are (3) Some other, obsolete systems to which 'gawk' was once ported are
no longer supported and the code for those systems has been removed. no longer supported and the code for those systems has been removed.
File: gawk.info, Node: History, Next: Names, Up: Preface File: gawk.info, Node: History, Next: Names, Up: Preface
skipping to change at line 925 skipping to change at line 928
Laboratories provided feedback for the POSIX specification. Laboratories provided feedback for the POSIX specification.
Paul Rubin wrote 'gawk' in 1986. Jay Fenlason completed it, with Paul Rubin wrote 'gawk' in 1986. Jay Fenlason completed it, with
advice from Richard Stallman. John Woods contributed parts of the code advice from Richard Stallman. John Woods contributed parts of the code
as well. In 1988 and 1989, David Trueman, with help from me, thoroughly as well. In 1988 and 1989, David Trueman, with help from me, thoroughly
reworked 'gawk' for compatibility with the newer 'awk'. Circa 1994, I reworked 'gawk' for compatibility with the newer 'awk'. Circa 1994, I
became the primary maintainer. Current development focuses on bug became the primary maintainer. Current development focuses on bug
fixes, performance improvements, standards compliance, and, fixes, performance improvements, standards compliance, and,
occasionally, new features. occasionally, new features.
In May 1997, Ju"rgen Kahrs felt the need for network access from In May 1997, Jürgen Kahrs felt the need for network access from
'awk', and with a little help from me, set about adding features to do 'awk', and with a little help from me, set about adding features to do
this for 'gawk'. At that time, he also wrote the bulk of 'TCP/IP this for 'gawk'. At that time, he also wrote the bulk of 'TCP/IP
Internetworking with 'gawk'' (a separate document, available as part of Internetworking with 'gawk'' (a separate document, available as part of
the 'gawk' distribution). His code finally became part of the main the 'gawk' distribution). His code finally became part of the main
'gawk' distribution with 'gawk' version 3.1. 'gawk' distribution with 'gawk' version 3.1.
John Haque rewrote the 'gawk' internals, in the process providing an John Haque rewrote the 'gawk' internals, in the process providing an
'awk'-level debugger. This version became available as 'gawk' version 'awk'-level debugger. This version became available as 'gawk' version
4.0 in 2011. 4.0 in 2011.
skipping to change at line 951 skipping to change at line 954
A Rose by Any Other Name A Rose by Any Other Name
======================== ========================
The 'awk' language has evolved over the years. Full details are The 'awk' language has evolved over the years. Full details are
provided in *note Language History::. The language described in this provided in *note Language History::. The language described in this
Info file is often referred to as "new 'awk'." By analogy, the original Info file is often referred to as "new 'awk'." By analogy, the original
version of 'awk' is referred to as "old 'awk'." version of 'awk' is referred to as "old 'awk'."
On most current systems, when you run the 'awk' utility you get some On most current systems, when you run the 'awk' utility you get some
version of new 'awk'.(1) If your system's standard 'awk' is the old version of new 'awk'.(1) If your system's standard 'awk' is the old
one, you will see something like this if you try the test program: one, you will see something like this if you try the following test
program:
$ awk 1 /dev/null $ awk 1 /dev/null
error-> awk: syntax error near line 1 error-> awk: syntax error near line 1
error-> awk: bailing out near line 1 error-> awk: bailing out near line 1
In this case, you should find a version of new 'awk', or just install In this case, you should find a version of new 'awk', or just install
'gawk'! 'gawk'!
Throughout this Info file, whenever we refer to a language feature Throughout this Info file, whenever we refer to a language feature
that should be available in any complete implementation of POSIX 'awk', that should be available in any complete implementation of POSIX 'awk',
skipping to change at line 1133 skipping to change at line 1137
Typographical Conventions Typographical Conventions
========================= =========================
This Info file is written in Texinfo This Info file is written in Texinfo
(https://www.gnu.org/software/texinfo/), the GNU documentation (https://www.gnu.org/software/texinfo/), the GNU documentation
formatting language. A single Texinfo source file is used to produce formatting language. A single Texinfo source file is used to produce
both the printed and online versions of the documentation. This minor both the printed and online versions of the documentation. This minor
node briefly documents the typographical conventions used in Texinfo. node briefly documents the typographical conventions used in Texinfo.
Examples you would type at the command line are preceded by the Examples you would type at the command line are preceded by the
common shell primary and secondary prompts, '$' and '>'. Input that you common shell primary and secondary prompts, '$' and '>', respectively.
type is shown 'like this'. Output from the command is preceded by the Input that you type is shown 'like this'. Output from the command is
glyph "-|". This typically represents the command's standard output. preceded by the glyph "-|". This typically represents the command's
Error messages and other output on the command's standard error are standard output. Error messages and other output on the command's
preceded by the glyph "error->". For example: standard error are preceded by the glyph "error->". For example:
$ echo hi on stdout $ echo hi on stdout
-| hi on stdout -| hi on stdout
$ echo hello on stderr 1>&2 $ echo hello on stderr 1>&2
error-> hello on stderr error-> hello on stderr
Characters that you type at the keyboard look 'like this'. In Characters that you type at the keyboard look 'like this'. In
particular, there are special characters called "control characters." particular, there are special characters called "control characters."
These are characters that you type by holding down both the 'CONTROL' These are characters that you type by holding down both the 'CONTROL'
key and another key, at the same time. For example, a 'Ctrl-d' is typed key and another key, at the same time. For example, a 'Ctrl-d' is typed
skipping to change at line 1324 skipping to change at line 1328
The intrepid members of the GNITS mailing list, and most notably The intrepid members of the GNITS mailing list, and most notably
Ulrich Drepper, provided invaluable help and feedback for the Ulrich Drepper, provided invaluable help and feedback for the
design of the internationalization features. design of the internationalization features.
Chuck Toporek, Mary Sheehan, and Claire Cloutier of O'Reilly & Chuck Toporek, Mary Sheehan, and Claire Cloutier of O'Reilly &
Associates contributed significant editorial help for this Info Associates contributed significant editorial help for this Info
file for the 3.1 release of 'gawk'. file for the 3.1 release of 'gawk'.
Dr. Nelson Beebe, Andreas Buening, Dr. Manuel Collado, Antonio Dr. Nelson Beebe, Andreas Buening, Dr. Manuel Collado, Antonio
Colombo, Stephen Davies, Scott Deifik, Akim Demaille, Daniel Richard G., Colombo, Stephen Davies, Scott Deifik, Akim Demaille, Daniel Richard G.,
Juan Manuel Guerrero, Darrel Hankerson, Michal Jaegermann, Ju"rgen Juan Manuel Guerrero, Darrel Hankerson, Michal Jaegermann, Jürgen Kahrs,
Kahrs, Stepan Kasal, John Malmberg, Dave Pitts, Chet Ramey, Pat Rankin, Stepan Kasal, John Malmberg, Chet Ramey, Pat Rankin, Andrew Schorr,
Andrew Schorr, Corinna Vinschen, and Eli Zaretskii (in alphabetical Corinna Vinschen, and Eli Zaretskii (in alphabetical order) make up the
order) make up the current 'gawk' "crack portability team." Without current 'gawk' "crack portability team." Without their hard work and
their hard work and help, 'gawk' would not be nearly the robust, help, 'gawk' would not be nearly the robust, portable program it is
portable program it is today. It has been and continues to be a today. It has been and continues to be a pleasure working with this
pleasure working with this team of fine people. team of fine people.
Notable code and documentation contributions were made by a number of Notable code and documentation contributions were made by a number of
people. *Note Contributors:: for the full list. people. *Note Contributors:: for the full list.
Thanks to Michael Brennan for the Forewords. Thanks to Michael Brennan for the Forewords.
Thanks to Patrice Dumas for the new 'makeinfo' program. Thanks to Thanks to Patrice Dumas for the new 'makeinfo' program. Thanks to
Karl Berry, who continues to work to keep the Texinfo markup language Karl Berry for his past work on Texinfo, and to Gavin Smith, who
sane. continues to work to improve the Texinfo markup language.
Robert P.J. Day, Michael Brennan, and Brian Kernighan kindly acted as Robert P.J. Day, Michael Brennan, and Brian Kernighan kindly acted as
reviewers for the 2015 edition of this Info file. Their feedback helped reviewers for the 2015 edition of this Info file. Their feedback helped
improve the final work. improve the final work.
I would also like to thank Brian Kernighan for his invaluable I would also like to thank Brian Kernighan for his invaluable
assistance during the testing and debugging of 'gawk', and for his assistance during the testing and debugging of 'gawk', and for his
ongoing help and advice in clarifying numerous points about the ongoing help and advice in clarifying numerous points about the
language. We could not have done nearly as good a job on either 'gawk' language. We could not have done nearly as good a job on either 'gawk'
or its documentation without his help. or its documentation without his help.
Brian is in a class by himself as a programmer and technical author. Brian is in a class by himself as a programmer and technical author.
I have to thank him (yet again) for his ongoing friendship and for being I have to thank him (yet again) for his ongoing friendship and for being
a role model to me for close to 30 years! Having him as a reviewer is a role model to me for over 30 years! Having him as a reviewer is an
an exciting privilege. It has also been extremely humbling... exciting privilege. It has also been extremely humbling...
I must thank my wonderful wife, Miriam, for her patience through the I must thank my wonderful wife, Miriam, for her patience through the
many versions of this project, for her proofreading, and for sharing me many versions of this project, for her proofreading, and for sharing me
with the computer. I would like to thank my parents for their love, and with the computer. I would like to thank my parents for their love, and
for the grace with which they raised and educated me. Finally, I also for the grace with which they raised and educated me. Finally, I also
must acknowledge my gratitude to G-d, for the many opportunities He has must acknowledge my gratitude to G-d, for the many opportunities He has
sent my way, as well as for the gifts He has given me with which to take sent my way, as well as for the gifts He has given me with which to take
advantage of those opportunities. advantage of those opportunities.
Arnold Robbins Arnold Robbins
Nof Ayalon Nof Ayalon
Israel Israel
February 2015 March, 2020
File: gawk.info, Node: Getting Started, Next: Invoking Gawk, Prev: Preface, Up: Top File: gawk.info, Node: Getting Started, Next: Invoking Gawk, Prev: Preface, Up: Top
1 Getting Started with 'awk' 1 Getting Started with 'awk'
**************************** ****************************
The basic function of 'awk' is to search files for lines (or other units 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 of text) that contain certain patterns. When a line matches one of the
patterns, 'awk' performs specified actions on that line. 'awk' patterns, 'awk' performs specified actions on that line. 'awk'
continues to process input lines in this way until it reaches the end of continues to process input lines in this way until it reaches the end of
skipping to change at line 1589 skipping to change at line 1593
#! /bin/awk -f #! /bin/awk -f
BEGIN { print "Don't Panic!" } BEGIN { print "Don't Panic!" }
After making this file executable (with the 'chmod' utility), simply After making this file executable (with the 'chmod' utility), simply
type 'advice' at the shell and the system arranges to run 'awk' as if type 'advice' at the shell and the system arranges to run 'awk' as if
you had typed 'awk -f advice': you had typed 'awk -f advice':
$ chmod +x advice $ chmod +x advice
$ advice $ ./advice
-| Don't Panic! -| Don't Panic!
(We assume you have the current directory in your shell's search path Self-contained 'awk' scripts are useful when you want to write a program
variable [typically '$PATH']. If not, you may need to type './advice' that users can invoke without their having to know that the program is
at the shell.) written in 'awk'.
Self-contained 'awk' scripts are useful when you want to write a
program that users can invoke without their having to know that the
program is written in 'awk'.
Understanding '#!' Understanding '#!'
'awk' is an "interpreted" language. This means that the 'awk' 'awk' is an "interpreted" language. This means that the 'awk'
utility reads your program and then processes your data according to the utility reads your program and then processes your data according to the
instructions in your program. (This is different from a "compiled" instructions in your program. (This is different from a "compiled"
language such as C, where your program is first compiled into machine language such as C, where your program is first compiled into machine
code that is executed directly by your system's processor.) The 'awk' code that is executed directly by your system's processor.) The 'awk'
utility is thus termed an "interpreter". Many modern languages are utility is thus termed an "interpreter". Many modern languages are
interpreted. interpreted.
The line beginning with '#!' lists the full file name of an The line beginning with '#!' lists the full file name of an
interpreter to run and a single optional initial command-line argument interpreter to run and a single optional initial command-line argument
to pass to that interpreter. The operating system then runs the to pass to that interpreter. The operating system then runs the
interpreter with the given argument and the full argument list of the interpreter with the given argument and the full argument list of the
executed program. The first argument in the list is the full file name executed program. The first argument in the list is the full file name
of the 'awk' program. The rest of the argument list contains either of the 'awk' program. The rest of the argument list contains either
options to 'awk', or data files, or both. (Note that on many systems options to 'awk', or data files, or both. (Note that on many systems
'awk' may be found in '/usr/bin' instead of in '/bin'.) 'awk' is found in '/usr/bin' instead of in '/bin'.)
Some systems limit the length of the interpreter name to 32 Some systems limit the length of the interpreter name to 32
characters. Often, this can be dealt with by using a symbolic link. characters. Often, this can be dealt with by using a symbolic link.
You should not put more than one argument on the '#!' line after the You should not put more than one argument on the '#!' line after the
path to 'awk'. It does not work. The operating system treats the rest path to 'awk'. It does not work. The operating system treats the rest
of the line as a single argument and passes it to 'awk'. Doing this of the line as a single argument and passes it to 'awk'. Doing this
leads to confusing behavior--most likely a usage diagnostic of some sort leads to confusing behavior--most likely a usage diagnostic of some sort
from 'awk'. from 'awk'.
skipping to change at line 1816 skipping to change at line 1816
A third option is to use the octal escape sequence equivalents (*note A third option is to use the octal escape sequence equivalents (*note
Escape Sequences::) for the single- and double-quote characters, like Escape Sequences::) for the single- and double-quote characters, like
so: so:
$ awk 'BEGIN { print "Here is a single quote <\47>" }' $ awk 'BEGIN { print "Here is a single quote <\47>" }'
-| Here is a single quote <'> -| Here is a single quote <'>
$ awk 'BEGIN { print "Here is a double quote <\42>" }' $ awk 'BEGIN { print "Here is a double quote <\42>" }'
-| Here is a double quote <"> -| Here is a double quote <">
This works nicely, but you should comment clearly what the escapes mean. This works nicely, but you should comment clearly what the escape
sequences mean.
A fourth option is to use command-line variable assignment, like A fourth option is to use command-line variable assignment, like
this: this:
$ awk -v sq="'" 'BEGIN { print "Here is a single quote <" sq ">" }' $ awk -v sq="'" 'BEGIN { print "Here is a single quote <" sq ">" }'
-| Here is a single quote <'> -| Here is a single quote <'>
(Here, the two string constants and the value of 'sq' are (Here, the two string constants and the value of 'sq' are
concatenated into a single string that is printed by 'print'.) concatenated into a single string that is printed by 'print'.)
skipping to change at line 2184 skipping to change at line 2185
and keywords: and keywords:
, { ? : || && do else , { ? : || && do else
A newline at any other point is considered the end of the statement.(1) A newline at any other point is considered the end of the statement.(1)
If you would like to split a single statement into two lines at a If you would like to split a single statement into two lines at a
point where a newline would terminate it, you can "continue" it by point where a newline would terminate it, you can "continue" it by
ending the first line with a backslash character ('\'). The backslash ending the first line with a backslash character ('\'). The backslash
must be the final character on the line in order to be recognized as a must be the final character on the line in order to be recognized as a
continuation character. A backslash is allowed anywhere in the continuation character. A backslash followed by a newline is allowed
statement, even in the middle of a string or regular expression. For anywhere in the statement, even in the middle of a string or regular
example: expression. For example:
awk '/This regular expression is too long, so continue it\ awk '/This regular expression is too long, so continue it\
on the next line/ { print $1 }' on the next line/ { print $1 }'
We have generally not used backslash continuation in our sample We have generally not used backslash continuation in our sample
programs. 'gawk' places no limit on the length of a line, so backslash programs. 'gawk' places no limit on the length of a line, so backslash
continuation is never strictly necessary; it just makes programs more continuation is never strictly necessary; it just makes programs more
readable. For this same reason, as well as for clarity, we have kept readable. For this same reason, as well as for clarity, we have kept
most statements short in the programs presented throughout the Info most statements short in the programs presented throughout the Info
file. Backslash continuation is most useful when your 'awk' program is file.
in a separate source file instead of entered from the command line. You
Backslash continuation is most useful when your 'awk' program is in a
separate source file instead of entered from the command line. You
should also note that many 'awk' implementations are more particular should also note that many 'awk' implementations are more particular
about where you may use backslash continuation. For example, they may about where you may use backslash continuation. For example, they may
not allow you to split a string constant using backslash continuation. not allow you to split a string constant using backslash continuation.
Thus, for maximum portability of your 'awk' programs, it is best not to Thus, for maximum portability of your 'awk' programs, it is best not to
split your lines in the middle of a regular expression or a string. split your lines in the middle of a regular expression or a string.
CAUTION: _Backslash continuation does not work as described with CAUTION: _Backslash continuation does not work as described with
the C shell._ It works for 'awk' programs in files and for the C shell._ It works for 'awk' programs in files and for
one-shot programs, _provided_ you are using a POSIX-compliant one-shot programs, _provided_ you are using a POSIX-compliant
shell, such as the Unix Bourne shell or Bash. But the C shell shell, such as the Unix Bourne shell or Bash. But the C shell
skipping to change at line 2420 skipping to change at line 2423
2.2 Command-Line Options 2.2 Command-Line Options
======================== ========================
Options begin with a dash and consist of a single character. GNU-style Options begin with a dash and consist of a single character. GNU-style
long options consist of two dashes and a keyword. The keyword can be long options consist of two dashes and a keyword. The keyword can be
abbreviated, as long as the abbreviation allows the option to be abbreviated, as long as the abbreviation allows the option to be
uniquely identified. If the option takes an argument, either the uniquely identified. If the option takes an argument, either the
keyword is immediately followed by an equals sign ('=') and the keyword is immediately followed by an equals sign ('=') and the
argument's value, or the keyword and the argument's value are separated argument's value, or the keyword and the argument's value are separated
by whitespace. If a particular option with a value is given more than by whitespace (spaces or TABs). If a particular option with a value is
once, it is the last value that counts. given more than once, it is the last value that counts.
Each long option for 'gawk' has a corresponding POSIX-style short Each long option for 'gawk' has a corresponding POSIX-style short
option. The long and short options are interchangeable in all contexts. option. The long and short options are interchangeable in all contexts.
The following list describes options mandated by the POSIX standard: The following list describes options mandated by the POSIX standard:
'-F FS' '-F FS'
'--field-separator FS' '--field-separator FS'
Set the 'FS' variable to FS (*note Field Separators::). Set the 'FS' variable to FS (*note Field Separators::).
'-f SOURCE-FILE' '-f SOURCE-FILE'
'--file SOURCE-FILE' '--file SOURCE-FILE'
Read the 'awk' program source from SOURCE-FILE instead of in the Read the 'awk' program source from SOURCE-FILE instead of in the
first nonoption argument. This option may be given multiple times; first nonoption argument. This option may be given multiple times;
the 'awk' program consists of the concatenation of the contents of the 'awk' program consists of the concatenation of the contents of
each specified SOURCE-FILE. each specified SOURCE-FILE.
Files named with '-f' are treated as if they had '@namespace "awk"' Files named with '-f' are treated as if they had '@namespace "awk"'
at their beginning. *Note Changing The Namespace::, for more at their beginning. *Note Changing The Namespace::, for more
information. information on this advanced feature.
'-v VAR=VAL' '-v VAR=VAL'
'--assign VAR=VAL' '--assign VAR=VAL'
Set the variable VAR to the value VAL _before_ execution of the Set the variable VAR to the value VAL _before_ execution of the
program begins. Such variable values are available inside the program begins. Such variable values are available inside the
'BEGIN' rule (*note Other Arguments::). 'BEGIN' rule (*note Other Arguments::).
The '-v' option can only set one variable, but it can be used more The '-v' option can only set one variable, but it can be used more
than once, setting another variable each time, like this: 'awk than once, setting another variable each time, like this: 'awk
-v foo=1 -v bar=2 ...'. -v foo=1 -v bar=2 ...'.
skipping to change at line 2621 skipping to change at line 2624
is to use the '@load' keyword inside the program to load a shared is to use the '@load' keyword inside the program to load a shared
library. This advanced feature is described in detail in *note library. This advanced feature is described in detail in *note
Dynamic Extensions::. Dynamic Extensions::.
'-L'[VALUE] '-L'[VALUE]
'--lint'['='VALUE] '--lint'['='VALUE]
Warn about constructs that are dubious or nonportable to other Warn about constructs that are dubious or nonportable to other
'awk' implementations. No space is allowed between the '-L' and 'awk' implementations. No space is allowed between the '-L' and
VALUE, if VALUE is supplied. Some warnings are issued when 'gawk' VALUE, if VALUE is supplied. Some warnings are issued when 'gawk'
first reads your program. Others are issued at runtime, as your first reads your program. Others are issued at runtime, as your
program executes. With an optional argument of 'fatal', lint program executes. The optional argument may be one of the
warnings become fatal errors. This may be drastic, but its use following:
will certainly encourage the development of cleaner 'awk' programs.
With an optional argument of 'invalid', only warnings about things 'fatal'
that are actually invalid are issued. (This is not fully Cause lint warnings become fatal errors. This may be drastic,
implemented yet.) With an optional argument of 'no-ext', warnings but its use will certainly encourage the development of
about 'gawk' extensions are disabled. cleaner 'awk' programs.
'invalid'
Only issue warnings about things that are actually invalid are
issued. (This is not fully implemented yet.)
'no-ext'
Disable warnings about 'gawk' extensions.
Some warnings are only printed once, even if the dubious constructs Some warnings are only printed once, even if the dubious constructs
they warn about occur multiple times in your 'awk' program. Thus, they warn about occur multiple times in your 'awk' program. Thus,
when eliminating problems pointed out by '--lint', you should take when eliminating problems pointed out by '--lint', you should take
care to search for all occurrences of each inappropriate construct. care to search for all occurrences of each inappropriate construct.
As 'awk' programs are usually short, doing so is not burdensome. As 'awk' programs are usually short, doing so is not burdensome.
'-M' '-M'
'--bignum' '--bignum'
Select arbitrary-precision arithmetic on numbers. This option has Select arbitrary-precision arithmetic on numbers. This option has
skipping to change at line 2729 skipping to change at line 2739
representation of the program. representation of the program.
'-S' '-S'
'--sandbox' '--sandbox'
Disable the 'system()' function, input redirections with 'getline', Disable the 'system()' function, input redirections with 'getline',
output redirections with 'print' and 'printf', and dynamic output redirections with 'print' and 'printf', and dynamic
extensions. Also, disallow adding filenames to 'ARGV' that were extensions. Also, disallow adding filenames to 'ARGV' that were
not there when 'gawk' started running. This is particularly useful not there when 'gawk' started running. This is particularly useful
when you want to run 'awk' scripts from questionable sources and when you want to run 'awk' scripts from questionable sources and
need to make sure the scripts can't access your system (other than need to make sure the scripts can't access your system (other than
the specified input data file). the specified input data files).
'-t' '-t'
'--lint-old' '--lint-old'
Warn about constructs that are not available in the original Warn about constructs that are not available in the original
version of 'awk' from Version 7 Unix (*note V7/SVR3.1::). version of 'awk' from Version 7 Unix (*note V7/SVR3.1::).
'-V' '-V'
'--version' '--version'
Print version information for this particular copy of 'gawk'. This Print version information for this particular copy of 'gawk'. This
allows you to determine if your copy of 'gawk' is up to date with allows you to determine if your copy of 'gawk' is up to date with
respect to whatever the Free Software Foundation is currently respect to whatever the Free Software Foundation is currently
distributing. It is also useful for bug reports (*note Bugs::). distributing. It is also useful for bug reports (*note Bugs::).
'--'
Mark the end of all options. Any command-line arguments following
'--' are placed in 'ARGV', even if they start with a minus sign.
As long as program text has been supplied, any other options are As long as program text has been supplied, any other options are
flagged as invalid with a warning message but are otherwise ignored. flagged as invalid with a warning message but are otherwise ignored.
In compatibility mode, as a special case, if the value of FS supplied In compatibility mode, as a special case, if the value of FS supplied
to the '-F' option is 't', then 'FS' is set to the TAB character to the '-F' option is 't', then 'FS' is set to the TAB character
('"\t"'). This is true only for '--traditional' and not for '--posix' ('"\t"'). This is true only for '--traditional' and not for '--posix'
(*note Field Separators::). (*note Field Separators::).
The '-f' option may be used more than once on the command line. If The '-f' option may be used more than once on the command line. If
it is, 'awk' reads its program source from all of the named files, as if it is, 'awk' reads its program source from all of the named files, as if
skipping to change at line 2770 skipping to change at line 2784
With standard 'awk', library functions can still be used, even if the With standard 'awk', library functions can still be used, even if the
program is entered at the keyboard, by specifying '-f /dev/tty'. After program is entered at the keyboard, by specifying '-f /dev/tty'. After
typing your program, type 'Ctrl-d' (the end-of-file character) to typing your program, type 'Ctrl-d' (the end-of-file character) to
terminate it. (You may also use '-f -' to read program source from the terminate it. (You may also use '-f -' to read program source from the
standard input, but then you will not be able to also use the standard standard input, but then you will not be able to also use the standard
input as a source of data.) input as a source of data.)
Because it is clumsy using the standard 'awk' mechanisms to mix Because it is clumsy using the standard 'awk' mechanisms to mix
source file and command-line 'awk' programs, 'gawk' provides the '-e' source file and command-line 'awk' programs, 'gawk' provides the '-e'
option. This does not require you to preempt the standard input for option. This does not require you to preempt the standard input for
your source code; it allows you to easily mix command-line and library your source code, and it allows you to easily mix command-line and
source code (*note AWKPATH Variable::). As with '-f', the '-e' and '-i' library source code (*note AWKPATH Variable::). As with '-f', the '-e'
options may also be used multiple times on the command line. and '-i' options may also be used multiple times on the command line.
If no '-f' option (or '-e' option for 'gawk') is specified, then If no '-f' option (or '-e' option for 'gawk') is specified, then
'awk' uses the first nonoption command-line argument as the text of the 'awk' uses the first nonoption command-line argument as the text of the
program source code. Arguments on the command line that follow the program source code. Arguments on the command line that follow the
program text are entered into the 'ARGV' array; 'awk' does _not_ program text are entered into the 'ARGV' array; 'awk' does _not_
continue to parse the command line looking for options. continue to parse the command line looking for options.
If the environment variable 'POSIXLY_CORRECT' exists, then 'gawk' If the environment variable 'POSIXLY_CORRECT' exists, then 'gawk'
behaves in strict POSIX mode, exactly as if you had supplied '--posix'. behaves in strict POSIX mode, exactly as if you had supplied '--posix'.
Many GNU programs look for this environment variable to suppress Many GNU programs look for this environment variable to suppress
skipping to change at line 2827 skipping to change at line 2841
Any additional arguments on the command line are normally treated as Any additional arguments on the command line are normally treated as
input files to be processed in the order specified. However, an input files to be processed in the order specified. However, an
argument that has the form 'VAR=VALUE', assigns the value VALUE to the argument that has the form 'VAR=VALUE', assigns the value VALUE to the
variable VAR--it does not specify a file at all. (See *note Assignment variable VAR--it does not specify a file at all. (See *note Assignment
Options::.) In the following example, COUNT=1 is a variable assignment, Options::.) In the following example, COUNT=1 is a variable assignment,
not a file name: not a file name:
awk -f program.awk file1 count=1 file2 awk -f program.awk file1 count=1 file2
As a side point, should you really need to have 'awk' process a file
named 'count=1' (or any file whose name looks like a variable
assignment), precede the file name with './', like so:
awk -f program.awk file1 ./count=1 file2
All the command-line arguments are made available to your 'awk' All the command-line arguments are made available to your 'awk'
program in the 'ARGV' array (*note Built-in Variables::). Command-line program in the 'ARGV' array (*note Built-in Variables::). Command-line
options and the program text (if present) are omitted from 'ARGV'. All options and the program text (if present) are omitted from 'ARGV'. All
other arguments, including variable assignments, are included. As each other arguments, including variable assignments, are included. As each
element of 'ARGV' is processed, 'gawk' sets 'ARGIND' to the index in element of 'ARGV' is processed, 'gawk' sets 'ARGIND' to the index in
'ARGV' of the current element. 'ARGV' of the current element. ('gawk' makes the full command line,
including program text and options, available in 'PROCINFO["argv"]';
*note Auto-set::.)
Changing 'ARGC' and 'ARGV' in your 'awk' program lets you control how Changing 'ARGC' and 'ARGV' in your 'awk' program lets you control how
'awk' processes the input files; this is described in more detail in 'awk' processes the input files; this is described in more detail in
*note ARGC and ARGV::. *note ARGC and ARGV::.
The distinction between file name arguments and variable-assignment The distinction between file name arguments and variable-assignment
arguments is made when 'awk' is about to open the next input file. At arguments is made when 'awk' is about to open the next input file. At
that point in execution, it checks the file name to see whether it is that point in execution, it checks the file name to see whether it is
really a variable assignment; if so, 'awk' sets the variable instead of really a variable assignment; if so, 'awk' sets the variable instead of
reading a file. reading a file.
skipping to change at line 2990 skipping to change at line 3012
makes sense: the 'AWKPATH' environment variable is used to find the makes sense: the 'AWKPATH' environment variable is used to find the
program source files. Once your program is running, all the files have program source files. Once your program is running, all the files have
been found, and 'gawk' no longer needs to use 'AWKPATH'. been found, and 'gawk' no longer needs to use 'AWKPATH'.
---------- Footnotes ---------- ---------- Footnotes ----------
(1) Semicolons on MS-Windows. (1) Semicolons on MS-Windows.
(2) Your version of 'gawk' may use a different directory; it will (2) Your version of 'gawk' may use a different directory; it will
depend upon how 'gawk' was built and installed. The actual directory is depend upon how 'gawk' was built and installed. The actual directory is
the value of '$(datadir)' generated when 'gawk' was configured. You the value of '$(pkgdatadir)' generated when 'gawk' was configured. (For
probably don't need to worry about this, though. more detail, see the 'INSTALL' file in the source distribution, and see
*note Quick Installation::. You probably don't need to worry about
this, though.)
File: gawk.info, Node: AWKLIBPATH Variable, Next: Other Environment Variables, Prev: AWKPATH Variable, Up: Environment Variables File: gawk.info, Node: AWKLIBPATH Variable, Next: Other Environment Variables, Prev: AWKPATH Variable, Up: Environment Variables
2.5.2 The 'AWKLIBPATH' Environment Variable 2.5.2 The 'AWKLIBPATH' Environment Variable
------------------------------------------- -------------------------------------------
The 'AWKLIBPATH' environment variable is similar to the 'AWKPATH' The 'AWKLIBPATH' environment variable is similar to the 'AWKPATH'
variable, but it is used to search for loadable extensions (stored as variable, but it is used to search for loadable extensions (stored as
system shared libraries) specified with the '-l' option rather than for system shared libraries) specified with the '-l' option rather than for
source files. If the extension is not found, the path is searched again source files. If the extension is not found, the path is searched again
after adding the appropriate shared library suffix for the platform. after adding the appropriate shared library suffix for the platform.
For example, on GNU/Linux systems, the suffix '.so' is used. The search For example, on GNU/Linux systems, the suffix '.so' is used. The search
path specified is also used for extensions loaded via the '@load' path specified is also used for extensions loaded via the '@load'
keyword (*note Loading Shared Libraries::). keyword (*note Loading Shared Libraries::).
If 'AWKLIBPATH' does not exist in the environment, or if it has an If 'AWKLIBPATH' does not exist in the environment, or if it has an
empty value, 'gawk' uses a default path; this is typically empty value, 'gawk' uses a default path; this is typically
'/usr/local/lib/gawk', although it can vary depending upon how 'gawk' '/usr/local/lib/gawk', although it can vary depending upon how 'gawk'
was built. was built.(1)
*Note Shell Startup Files::, for information on functions that help *Note Shell Startup Files::, for information on functions that help
to manipulate the 'AWKLIBPATH' variable. to manipulate the 'AWKLIBPATH' variable.
'gawk' places the value of the search path that it used into 'gawk' places the value of the search path that it used into
'ENVIRON["AWKLIBPATH"]'. This provides access to the actual search path 'ENVIRON["AWKLIBPATH"]'. This provides access to the actual search path
value from within an 'awk' program. value from within an 'awk' program.
Although you can change 'ENVIRON["AWKLIBPATH"]' within your 'awk' Although you can change 'ENVIRON["AWKLIBPATH"]' within your 'awk'
program, this has no effect on the running program's behavior. This program, this has no effect on the running program's behavior. This
makes sense: the 'AWKLIBPATH' environment variable is used to find any makes sense: the 'AWKLIBPATH' environment variable is used to find any
requested extensions, and they are loaded before the program starts to requested extensions, and they are loaded before the program starts to
run. Once your program is running, all the extensions have been found, run. Once your program is running, all the extensions have been found,
and 'gawk' no longer needs to use 'AWKLIBPATH'. and 'gawk' no longer needs to use 'AWKLIBPATH'.
---------- Footnotes ----------
(1) Your version of 'gawk' may use a different directory; it will
depend upon how 'gawk' was built and installed. The actual directory is
the value of '$(pkgextensiondir)' generated when 'gawk' was configured.
(For more detail, see the 'INSTALL' file in the source distribution, and
see *note Quick Installation::. You probably don't need to worry about
this, though.)
File: gawk.info, Node: Other Environment Variables, Prev: AWKLIBPATH Variable, Up: Environment Variables File: gawk.info, Node: Other Environment Variables, Prev: AWKLIBPATH Variable, Up: Environment Variables
2.5.3 Other Environment Variables 2.5.3 Other Environment Variables
--------------------------------- ---------------------------------
A number of other environment variables affect 'gawk''s behavior, but A number of other environment variables affect 'gawk''s behavior, but
they are more specialized. Those in the following list are meant to be they are more specialized. Those in the following list are meant to be
used by regular users: used by regular users:
'GAWK_MSEC_SLEEP' 'GAWK_MSEC_SLEEP'
skipping to change at line 3294 skipping to change at line 3327
Use the Source, Luke! Use the Source, Luke!
-- _Obi-Wan_ -- _Obi-Wan_
This minor node intentionally left blank. This minor node intentionally left blank.
File: gawk.info, Node: Invoking Summary, Prev: Undocumented, Up: Invoking Gaw k File: gawk.info, Node: Invoking Summary, Prev: Undocumented, Up: Invoking Gaw k
2.11 Summary 2.11 Summary
============ ============
* Use either 'awk 'PROGRAM' FILES' or 'awk -f PROGRAM-FILE FILES' to * 'gawk' parses arguments on the command line, left to right, to
run 'awk'. determine if they should be treated as options or as non-option
arguments.
* 'gawk' recognizes several options which control its operation, as
described in *note Options::. All options begin with '-'.
* Any argument that is not recognized as an option is treated as a
non-option argument, even if it begins with '-'.
- However, when an option itself requires an argument, and the
option is separated from that argument on the command line by
at least one space, the space is ignored, and the argument is
considered to be related to the option. Thus, in the
invocation, 'gawk -F x', the 'x' is treated as belonging to
the '-F' option, not as a separate non-option argument.
* Once 'gawk' finds a non-option argument, it stops looking for
options. Therefore, all following arguments are also non-option
arguments, even if they resemble recognized options.
* If no '-e' or '-f' options are present, 'gawk' expects the program
text to be in the first non-option argument.
* All non-option arguments, except program text provided in the first
non-option argument, are placed in 'ARGV' as explained in *note
ARGC and ARGV::, and are processed as described in *note Other
Arguments::. Adjusting 'ARGC' and 'ARGV' affects how 'awk'
processes input.
* The three standard options for all versions of 'awk' are '-f', * The three standard options for all versions of 'awk' are '-f',
'-F', and '-v'. 'gawk' supplies these and many others, as well as '-F', and '-v'. 'gawk' supplies these and many others, as well as
corresponding GNU-style long options. corresponding GNU-style long options.
* Nonoption command-line arguments are usually treated as file names, * Nonoption command-line arguments are usually treated as file names,
unless they have the form 'VAR=VALUE', in which case they are taken unless they have the form 'VAR=VALUE', in which case they are taken
as variable assignments to be performed at that point in processing as variable assignments to be performed at that point in processing
the input. the input.
* All nonoption command-line arguments, excluding the program text,
are placed in the 'ARGV' array. Adjusting 'ARGC' and 'ARGV'
affects how 'awk' processes input.
* You can use a single minus sign ('-') to refer to standard input on * You can use a single minus sign ('-') to refer to standard input on
the command line. 'gawk' also lets you use the special file name the command line. 'gawk' also lets you use the special file name
'/dev/stdin'. '/dev/stdin'.
* 'gawk' pays attention to a number of environment variables. * 'gawk' pays attention to a number of environment variables.
'AWKPATH', 'AWKLIBPATH', and 'POSIXLY_CORRECT' are the most 'AWKPATH', 'AWKLIBPATH', and 'POSIXLY_CORRECT' are the most
important ones. important ones.
* 'gawk''s exit status conveys information to the program that * 'gawk''s exit status conveys information to the program that
invoked it. Use the 'exit' statement from within an 'awk' program invoked it. Use the 'exit' statement from within an 'awk' program
skipping to change at line 3496 skipping to change at line 3552
CAUTION: In ISO C, the escape sequence continues until the CAUTION: In ISO C, the escape sequence continues until the
first nonhexadecimal digit is seen. For many years, 'gawk' first nonhexadecimal digit is seen. For many years, 'gawk'
would continue incorporating hexadecimal digits into the value would continue incorporating hexadecimal digits into the value
until a non-hexadecimal digit or the end of the string was until a non-hexadecimal digit or the end of the string was
encountered. However, using more than two hexadecimal digits encountered. However, using more than two hexadecimal digits
produced undefined results. As of version 4.2, only two produced undefined results. As of version 4.2, only two
digits are processed. digits are processed.
'\/' '\/'
A literal slash (necessary for regexp constants only). This A literal slash (should be used for regexp constants only). This
sequence is used when you want to write a regexp constant that sequence is used when you want to write a regexp constant that
contains a slash (such as '/.*:\/home\/[[:alnum:]]+:.*/'; the contains a slash (such as '/.*:\/home\/[[:alnum:]]+:.*/'; the
'[[:alnum:]]' notation is discussed in *note Bracket '[[:alnum:]]' notation is discussed in *note Bracket
Expressions::). Because the regexp is delimited by slashes, you Expressions::). Because the regexp is delimited by slashes, you
need to escape any slash that is part of the pattern, in order to need to escape any slash that is part of the pattern, in order to
tell 'awk' to keep processing the rest of the regexp. tell 'awk' to keep processing the rest of the regexp.
'\"' '\"'
A literal double quote (necessary for string constants only). This A literal double quote (should be used for string constants only).
sequence is used when you want to write a string constant that This sequence is used when you want to write a string constant that
contains a double quote (such as '"He said \"hi!\" to her."'). contains a double quote (such as '"He said \"hi!\" to her."').
Because the string is delimited by double quotes, you need to Because the string is delimited by double quotes, you need to
escape any quote that is part of the string, in order to tell 'awk' escape any quote that is part of the string, in order to tell 'awk'
to keep processing the rest of the string. to keep processing the rest of the string.
In 'gawk', a number of additional two-character sequences that begin In 'gawk', a number of additional two-character sequences that begin
with a backslash have special meaning in regexps. *Note GNU Regexp with a backslash have special meaning in regexps. *Note GNU Regexp
Operators::. Operators::.
In a regexp, a backslash before any character that is not in the In a regexp, a backslash before any character that is not in the
skipping to change at line 3761 skipping to change at line 3817
For programs that use '{' and '}' in regexp constants, it is good For programs that use '{' and '}' in regexp constants, it is good
practice to always escape them with a backslash. Then the regexp practice to always escape them with a backslash. Then the regexp
constants are valid and work the way you want them to, using any version constants are valid and work the way you want them to, using any version
of 'awk'.(1) of 'awk'.(1)
Finally, when '{' and '}' appear in regexp constants in a way that Finally, when '{' and '}' appear in regexp constants in a way that
cannot be interpreted as an interval expression (such as '/q{a}/'), then cannot be interpreted as an interval expression (such as '/q{a}/'), then
they stand for themselves. they stand for themselves.
As mentioned, interval expressions were not traditionally available As mentioned, interval expressions were not traditionally available
in 'awk'. In March of 2019, Brian Kernighan's 'awk' (finally) acquired in 'awk'. In March of 2019, BWK 'awk' (finally) acquired them.
them.
Nonetheless, because they were not available for so many decades, Nonetheless, because they were not available for so many decades,
'gawk' continues to not supply them when in compatibility mode (*note 'gawk' continues to not supply them when in compatibility mode (*note
Options::). Options::).
---------- Footnotes ---------- ---------- Footnotes ----------
(1) Use two backslashes if you're using a string constant with a (1) Use two backslashes if you're using a string constant with a
regexp operator or function. regexp operator or function.
skipping to change at line 3867 skipping to change at line 3922
NOTE: Some older versions of Unix 'awk' treat '[:blank:]' like NOTE: Some older versions of Unix 'awk' treat '[:blank:]' like
'[:space:]', incorrectly matching more characters than they should. '[:space:]', incorrectly matching more characters than they should.
Caveat Emptor. Caveat Emptor.
Two additional special sequences can appear in bracket expressions. Two additional special sequences can appear in bracket expressions.
These apply to non-ASCII character sets, which can have single symbols These apply to non-ASCII character sets, which can have single symbols
(called "collating elements") that are represented with more than one (called "collating elements") that are represented with more than one
character. They can also have several characters that are equivalent character. They can also have several characters that are equivalent
for "collating", or sorting, purposes. (For example, in French, a plain for "collating", or sorting, purposes. (For example, in French, a plain
"e" and a grave-accented "e`" are equivalent.) These sequences are: "e" and a grave-accented "è" are equivalent.) These sequences are:
Collating symbols Collating symbols
Multicharacter collating elements enclosed between '[.' and '.]'. Multicharacter collating elements enclosed between '[.' and '.]'.
For example, if 'ch' is a collating element, then '[[.ch.]]' is a For example, if 'ch' is a collating element, then '[[.ch.]]' is a
regexp that matches this collating element, whereas '[ch]' is a regexp that matches this collating element, whereas '[ch]' is a
regexp that matches either 'c' or 'h'. regexp that matches either 'c' or 'h'.
Equivalence classes Equivalence classes
Locale-specific names for a list of characters that are equal. The Locale-specific names for a list of characters that are equal. The
name is enclosed between '[=' and '=]'. For example, the name 'e' name is enclosed between '[=' and '=]'. For example, the name 'e'
might be used to represent all of "e," "e^," "e`," and "e'." In might be used to represent all of "e," "ê," "è," and "é." In this
this case, '[[=e=]]' is a regexp that matches any of 'e', 'e^', case, '[[=e=]]' is a regexp that matches any of 'e', 'ê', 'é', or
'e'', or 'e`'. 'è'.
These features are very valuable in non-English-speaking locales. These features are very valuable in non-English-speaking locales.
CAUTION: The library functions that 'gawk' uses for regular CAUTION: The library functions that 'gawk' uses for regular
expression matching currently recognize only POSIX character expression matching currently recognize only POSIX character
classes; they do not recognize collating symbols or equivalence classes; they do not recognize collating symbols or equivalence
classes. classes.
Inside a bracket expression, an opening bracket ('[') that does not Inside a bracket expression, an opening bracket ('[') that does not
start a character class, collating element or equivalence class is taken start a character class, collating element or equivalence class is taken
skipping to change at line 4015 skipping to change at line 4070
==================================== ====================================
GNU software that deals with regular expressions provides a number of GNU software that deals with regular expressions provides a number of
additional regexp operators. These operators are described in this additional regexp operators. These operators are described in this
minor node and are specific to 'gawk'; they are not available in other minor node and are specific to 'gawk'; they are not available in other
'awk' implementations. Most of the additional operators deal with word 'awk' implementations. Most of the additional operators deal with word
matching. For our purposes, a "word" is a sequence of one or more matching. For our purposes, a "word" is a sequence of one or more
letters, digits, or underscores ('_'): letters, digits, or underscores ('_'):
'\s' '\s'
Matches any whitespace character. Think of it as shorthand for Matches any space character as defined by the current locale.
'[[:space:]]'. Think of it as shorthand for '[[:space:]]'.
'\S' '\S'
Matches any character that is not whitespace. Think of it as Matches any character that is not a space, as defined by the
shorthand for '[^[:space:]]'. current locale. Think of it as shorthand for '[^[:space:]]'.
'\w' '\w'
Matches any word-constituent character--that is, it matches any Matches any word-constituent character--that is, it matches any
letter, digit, or underscore. Think of it as shorthand for letter, digit, or underscore. Think of it as shorthand for
'[[:alnum:]_]'. '[[:alnum:]_]'.
'\W' '\W'
Matches any character that is not word-constituent. Think of it as Matches any character that is not word-constituent. Think of it as
shorthand for '[^[:alnum:]_]'. shorthand for '[^[:alnum:]_]'.
skipping to change at line 4469 skipping to change at line 4524
"^[[:upper:]]"' can only match at the beginning of a file. This is "^[[:upper:]]"' can only match at the beginning of a file. This is
because 'gawk' views the input file as one long string that happens because 'gawk' views the input file as one long string that happens
to contain newline characters. It is thus best to avoid anchor to contain newline characters. It is thus best to avoid anchor
metacharacters in the value of 'RS'. metacharacters in the value of 'RS'.
The use of 'RS' as a regular expression and the 'RT' variable are The use of 'RS' as a regular expression and the 'RT' variable are
'gawk' extensions; they are not available in compatibility mode (*note 'gawk' extensions; they are not available in compatibility mode (*note
Options::). In compatibility mode, only the first character of the Options::). In compatibility mode, only the first character of the
value of 'RS' determines the end of the record. value of 'RS' determines the end of the record.
'mawk' has allowed 'RS' to be a regexp for decades. As of October,
2019, BWK 'awk' also supports it. Neither version supplies 'RT',
however.
'RS = "\0"' Is Not Portable 'RS = "\0"' Is Not Portable
There are times when you might want to treat an entire data file as a There are times when you might want to treat an entire data file as a
single record. The only way to make this happen is to give 'RS' a value single record. The only way to make this happen is to give 'RS' a value
that you know doesn't occur in the input file. This is hard to do in a that you know doesn't occur in the input file. This is hard to do in a
general way, such that a program always works for arbitrary input files. general way, such that a program always works for arbitrary input files.
You might think that for text files, the NUL character, which You might think that for text files, the NUL character, which
consists of a character with all bits equal to zero, is a good value to consists of a character with all bits equal to zero, is a good value to
use for 'RS' in this case: use for 'RS' in this case:
skipping to change at line 5314 skipping to change at line 5373
Too much data, but with '*' supplied Too much data, but with '*' supplied
For example, if 'FIELDWIDTHS' is set to '"2 3 4 *"' and the input For example, if 'FIELDWIDTHS' is set to '"2 3 4 *"' and the input
record is 'aabbbccccddd'. In this case, 'NF' is set to four, and record is 'aabbbccccddd'. In this case, 'NF' is set to four, and
'$4' has the value '"ddd"'. '$4' has the value '"ddd"'.
File: gawk.info, Node: Splitting By Content, Next: Testing field creation, Pr ev: Constant Size, Up: Reading Files File: gawk.info, Node: Splitting By Content, Next: Testing field creation, Pr ev: Constant Size, Up: Reading Files
4.7 Defining Fields by Content 4.7 Defining Fields by Content
============================== ==============================
* Menu:
* More CSV:: More on CSV files.
This minor node discusses an advanced feature of 'gawk'. If you are a This minor node discusses an advanced feature of 'gawk'. If you are a
novice 'awk' user, you might want to skip it on the first reading. novice 'awk' user, you might want to skip it on the first reading.
Normally, when using 'FS', 'gawk' defines the fields as the parts of Normally, when using 'FS', 'gawk' defines the fields as the parts of
the record that occur in between each field separator. In other words, the record that occur in between each field separator. In other words,
'FS' defines what a field _is not_, instead of what a field _is_. 'FS' defines what a field _is not_, instead of what a field _is_.
However, there are times when you really want to define the fields by However, there are times when you really want to define the fields by
what they are, and not by what they are not. what they are, and not by what they are not.
The most notorious such case is so-called "comma-separated values" The most notorious such case is so-called "comma-separated values"
skipping to change at line 5339 skipping to change at line 5402
field in double quotes.(1) So, we might have data like this: field in double quotes.(1) So, we might have data like this:
Robbins,Arnold,"1234 A Pretty Street, NE",MyTown,MyState,12345-6789,USA Robbins,Arnold,"1234 A Pretty Street, NE",MyTown,MyState,12345-6789,USA
The 'FPAT' variable offers a solution for cases like this. The value The 'FPAT' variable offers a solution for cases like this. The value
of 'FPAT' should be a string that provides a regular expression. This of 'FPAT' should be a string that provides a regular expression. This
regular expression describes the contents of each field. regular expression describes the contents of each field.
In the case of CSV data as presented here, each field is either In the case of CSV data as presented here, each field is either
"anything that is not a comma," or "a double quote, anything that is not "anything that is not a comma," or "a double quote, anything that is not
a double quote, and a closing double quote." If written as a regular a double quote, and a closing double quote." (There are more
expression constant (*note Regexp::), we would have complicated definitions of CSV data, treated shortly.) If written as a
regular expression constant (*note Regexp::), we would have
'/([^,]+)|("[^"]+")/'. Writing this as a string requires us to escape '/([^,]+)|("[^"]+")/'. Writing this as a string requires us to escape
the double quotes, leading to: the double quotes, leading to:
FPAT = "([^,]+)|(\"[^\"]+\")" FPAT = "([^,]+)|(\"[^\"]+\")"
Putting this to use, here is a simple program to parse the data: Putting this to use, here is a simple program to parse the data:
BEGIN { BEGIN {
FPAT = "([^,]+)|(\"[^\"]+\")" FPAT = "([^,]+)|(\"[^\"]+\")"
} }
skipping to change at line 5381 skipping to change at line 5445
Note the embedded comma in the value of '$3'. Note the embedded comma in the value of '$3'.
A straightforward improvement when processing CSV data of this sort A straightforward improvement when processing CSV data of this sort
would be to remove the quotes when they occur, with something like this: would be to remove the quotes when they occur, with something like this:
if (substr($i, 1, 1) == "\"") { if (substr($i, 1, 1) == "\"") {
len = length($i) len = length($i)
$i = substr($i, 2, len - 2) # Get text within the two quotes $i = substr($i, 2, len - 2) # Get text within the two quotes
} }
As with 'FS', the 'IGNORECASE' variable (*note User-modified::)
affects field splitting with 'FPAT'.
Assigning a value to 'FPAT' overrides field splitting with 'FS' and
with 'FIELDWIDTHS'.
NOTE: Some programs export CSV data that contains embedded newlines NOTE: Some programs export CSV data that contains embedded newlines
between the double quotes. 'gawk' provides no way to deal with between the double quotes. 'gawk' provides no way to deal with
this. Even though a formal specification for CSV data exists, this. Even though a formal specification for CSV data exists,
there isn't much more to be done; the 'FPAT' mechanism provides an there isn't much more to be done; the 'FPAT' mechanism provides an
elegant solution for the majority of cases, and the 'gawk' elegant solution for the majority of cases, and the 'gawk'
developers are satisfied with that. developers are satisfied with that.
As written, the regexp used for 'FPAT' requires that each field As written, the regexp used for 'FPAT' requires that each field
contain at least one character. A straightforward modification contain at least one character. A straightforward modification
(changing the first '+' to '*') allows fields to be empty: (changing the first '+' to '*') allows fields to be empty:
FPAT = "([^,]*)|(\"[^\"]+\")" FPAT = "([^,]*)|(\"[^\"]+\")"
As with 'FS', the 'IGNORECASE' variable (*note User-modified::)
affects field splitting with 'FPAT'.
Assigning a value to 'FPAT' overrides field splitting with 'FS' and
with 'FIELDWIDTHS'.
Finally, the 'patsplit()' function makes the same functionality Finally, the 'patsplit()' function makes the same functionality
available for splitting regular strings (*note String Functions::). available for splitting regular strings (*note String Functions::).
---------- Footnotes ---------- ---------- Footnotes ----------
(1) The CSV format lacked a formal standard definition for many (1) The CSV format lacked a formal standard definition for many
years. RFC 4180 (http://www.ietf.org/rfc/rfc4180.txt) standardizes the years. RFC 4180 (http://www.ietf.org/rfc/rfc4180.txt) standardizes the
most common practices. most common practices.
File: gawk.info, Node: More CSV, Up: Splitting By Content
4.7.1 More on CSV Files
-----------------------
Manuel Collado notes that in addition to commas, a CSV field can also
contains quotes, that have to be escaped by doubling them. The
previously described regexps fail to accept quoted fields with both
commas and quotes inside. He suggests that the simplest 'FPAT'
expression that recognizes this kind of fields is
'/([^,]*)|("([^"]|"")+")/'. He provides the following input data to
test these variants:
p,"q,r",s
p,"q""r",s
p,"q,""r",s
p,"",s
p,,s
And here is his test program:
BEGIN {
fp[0] = "([^,]+)|(\"[^\"]+\")"
fp[1] = "([^,]*)|(\"[^\"]+\")"
fp[2] = "([^,]*)|(\"([^\"]|\"\")+\")"
FPAT = fp[fpat+0]
}
{
print "<" $0 ">"
printf("NF = %s ", NF)
for (i = 1; i <= NF; i++) {
printf("<%s>", $i)
}
print ""
}
When run on the third variant, it produces:
$ gawk -v fpat=2 -f test-csv.awk sample.csv
-| <p,"q,r",s>
-| NF = 3 <p><"q,r"><s>
-| <p,"q""r",s>
-| NF = 3 <p><"q""r"><s>
-| <p,"q,""r",s>
-| NF = 3 <p><"q,""r"><s>
-| <p,"",s>
-| NF = 3 <p><""><s>
-| <p,,s>
-| NF = 3 <p><><s>
File: gawk.info, Node: Testing field creation, Next: Multiple Line, Prev: Spl itting By Content, Up: Reading Files File: gawk.info, Node: Testing field creation, Next: Multiple Line, Prev: Spl itting By Content, Up: Reading Files
4.8 Checking How 'gawk' Is Splitting Records 4.8 Checking How 'gawk' Is Splitting Records
============================================ ============================================
As we've seen, 'gawk' provides three independent methods to split input As we've seen, 'gawk' provides three independent methods to split input
records into fields. The mechanism used is based on which of the three records into fields. The mechanism used is based on which of the three
variables--'FS', 'FIELDWIDTHS', or 'FPAT'--was last assigned to. In variables--'FS', 'FIELDWIDTHS', or 'FPAT'--was last assigned to. In
addition, an API input parser may choose to override the record parsing addition, an API input parser may choose to override the record parsing
mechanism; please refer to *note Input Parsers:: for further information mechanism; please refer to *note Input Parsers:: for further information
skipping to change at line 5884 skipping to change at line 5999
'FNR' are not changed. 'RT' is set. 'FNR' are not changed. 'RT' is set.
According to POSIX, 'EXPRESSION | getline' is ambiguous if EXPRESSION According to POSIX, 'EXPRESSION | getline' is ambiguous if EXPRESSION
contains unparenthesized operators other than '$'--for example, '"echo " contains unparenthesized operators other than '$'--for example, '"echo "
"date" | getline' is ambiguous because the concatenation operator is not "date" | getline' is ambiguous because the concatenation operator is not
parenthesized. You should write it as '("echo " "date") | getline' if parenthesized. You should write it as '("echo " "date") | getline' if
you want your program to be portable to all 'awk' implementations. you want your program to be portable to all 'awk' implementations.
NOTE: Unfortunately, 'gawk' has not been consistent in its NOTE: Unfortunately, 'gawk' has not been consistent in its
treatment of a construct like '"echo " "date" | getline'. Most treatment of a construct like '"echo " "date" | getline'. Most
versions, including the current version, treat it at as '("echo " versions, including the current version, treat it as '("echo "
"date") | getline'. (This is also how BWK 'awk' behaves.) Some "date") | getline'. (This is also how BWK 'awk' behaves.) Some
versions instead treat it as '"echo " ("date" | getline)'. (This versions instead treat it as '"echo " ("date" | getline)'. (This
is how 'mawk' behaves.) In short, _always_ use explicit is how 'mawk' behaves.) In short, _always_ use explicit
parentheses, and then you won't have to worry. parentheses, and then you won't have to worry.
File: gawk.info, Node: Getline/Variable/Pipe, Next: Getline/Coprocess, Prev: Getline/Pipe, Up: Getline File: gawk.info, Node: Getline/Variable/Pipe, Next: Getline/Coprocess, Prev: Getline/Pipe, Up: Getline
4.10.6 Using 'getline' into a Variable from a Pipe 4.10.6 Using 'getline' into a Variable from a Pipe
-------------------------------------------------- --------------------------------------------------
skipping to change at line 6271 skipping to change at line 6386
4.15 Exercises 4.15 Exercises
============== ==============
1. Using the 'FIELDWIDTHS' variable (*note Constant Size::), write a 1. Using the 'FIELDWIDTHS' variable (*note Constant Size::), write a
program to read election data, where each record represents one program to read election data, where each record represents one
voter's votes. Come up with a way to define which columns are voter's votes. Come up with a way to define which columns are
associated with each ballot item, and print the total votes, associated with each ballot item, and print the total votes,
including abstentions, for each item. including abstentions, for each item.
2. *note Plain Getline::, presented a program to remove C-style
comments ('/* ... */') from the input. That program does not work
if one comment ends on one line and another one starts later on the
same line. That can be fixed by making one simple change. What is
it?
File: gawk.info, Node: Printing, Next: Expressions, Prev: Reading Files, Up: Top File: gawk.info, Node: Printing, Next: Expressions, Prev: Reading Files, Up: Top
5 Printing Output 5 Printing Output
***************** *****************
One of the most common programming actions is to "print", or output, One of the most common programming actions is to "print", or output,
some or all of the input. Use the 'print' statement for simple output, some or all of the input. Use the 'print' statement for simple output,
and the 'printf' statement for fancier formatting. The 'print' and the 'printf' statement for fancier formatting. The 'print'
statement is not limited when computing _which_ values to print. statement is not limited when computing _which_ values to print.
However, with two exceptions, you cannot specify _how_ to print However, with two exceptions, you cannot specify _how_ to print
skipping to change at line 7610 skipping to change at line 7719
ASCII characters, including ASCII NUL (character code zero). Other ASCII characters, including ASCII NUL (character code zero). Other
'awk' implementations may have difficulty with some character codes. 'awk' implementations may have difficulty with some character codes.
Some languages allow you to continue long strings across multiple Some languages allow you to continue long strings across multiple
lines by ending the line with a backslash. For example in C: lines by ending the line with a backslash. For example in C:
#include <stdio.h> #include <stdio.h>
int main() int main()
{ {
printf "hello, \ printf("hello, \
world\n"); world\n");
return 0; return 0;
} }
In such a case, the C compiler removes both the backslash and the In such a case, the C compiler removes both the backslash and the
newline, producing a string as if it had been typed '"hello, world\n"'. newline, producing a string as if it had been typed '"hello, world\n"'.
This is useful when a single string needs to contain a large amount of This is useful when a single string needs to contain a large amount of
text. text.
The POSIX standard says explicitly that newlines are not allowed The POSIX standard says explicitly that newlines are not allowed
skipping to change at line 8012 skipping to change at line 8121
(*note Escape Sequences::). (d.c.) (*note Escape Sequences::). (d.c.)
Normally, variables assigned on the command line (with or without the Normally, variables assigned on the command line (with or without the
'-v' option) are treated as strings. When such variables are used as '-v' option) are treated as strings. When such variables are used as
numbers, 'awk''s normal automatic conversion of strings to numbers takes numbers, 'awk''s normal automatic conversion of strings to numbers takes
place, and everything "just works." place, and everything "just works."
However, 'gawk' supports variables whose types are "regexp". You can However, 'gawk' supports variables whose types are "regexp". You can
assign variables of this type using the following syntax: assign variables of this type using the following syntax:
gawk -v 're1=foo|bar/' '...' /path/to/file1 're2=baz|quux/' /path/to/file2 gawk -v 're1=@/foo|bar/' '...' /path/to/file1 're2=@/baz|quux/' /path/to/fi le2
Strongly typed regexps are an advanced feature (*note Strong Regexp Strongly typed regexps are an advanced feature (*note Strong Regexp
Constants::). We mention them here only for completeness. Constants::). We mention them here only for completeness.
File: gawk.info, Node: Conversion, Prev: Variables, Up: Values File: gawk.info, Node: Conversion, Prev: Variables, Up: Values
6.1.4 Conversion of Strings and Numbers 6.1.4 Conversion of Strings and Numbers
--------------------------------------- ---------------------------------------
Number-to-string and string-to-number conversion are generally Number-to-string and string-to-number conversion are generally
skipping to change at line 11727 skipping to change at line 11836
numbers in the process. Any index with a non-numeric value will numbers in the process. Any index with a non-numeric value will
end up positioned as if it were zero. end up positioned as if it were zero.
'"@val_type_asc"' '"@val_type_asc"'
Order by element values in ascending order (rather than by Order by element values in ascending order (rather than by
indices). Ordering is by the type assigned to the element (*note indices). Ordering is by the type assigned to the element (*note
Typing and Comparison::). All numeric values come before all Typing and Comparison::). All numeric values come before all
string values, which in turn come before all subarrays. (Subarrays string values, which in turn come before all subarrays. (Subarrays
have not been described yet; *note Arrays of Arrays::.) have not been described yet; *note Arrays of Arrays::.)
If you choose to use this feature in traversing 'FUNCTAB' (*note
Auto-set::), then the order is built-in functions first (*note
Built-in::), then user-defined functions (*note User-defined::)
next, and finally functions loaded from an extension (*note Dynamic
Extensions::).
'"@val_str_asc"' '"@val_str_asc"'
Order by element values in ascending order (rather than by Order by element values in ascending order (rather than by
indices). Scalar values are compared as strings. Subarrays, if indices). Scalar values are compared as strings. If the string
present, come out last. values are identical, the index string values are compared instead.
When comparing non-scalar values, '"@val_type_asc"' sort ordering
is used, so subarrays, if present, come out last.
'"@val_num_asc"' '"@val_num_asc"'
Order by element values in ascending order (rather than by Order by element values in ascending order (rather than by
indices). Scalar values are compared as numbers. Subarrays, if indices). Scalar values are compared as numbers. Non-scalar
present, come out last. When numeric values are equal, the string values are compared using '"@val_type_asc"' sort ordering, so
values are used to provide an ordering: this guarantees consistent subarrays, if present, come out last. When numeric values are
results across different versions of the C 'qsort()' function,(1) equal, the string values are used to provide an ordering: this
which 'gawk' uses internally to perform the sorting. guarantees consistent results across different versions of the C
'qsort()' function,(1) which 'gawk' uses internally to perform the
sorting. If the string values are also identical, the index string
values are compared instead.
'"@ind_str_desc"' '"@ind_str_desc"'
Like '"@ind_str_asc"', but the string indices are ordered from high Like '"@ind_str_asc"', but the string indices are ordered from high
to low. to low.
'"@ind_num_desc"' '"@ind_num_desc"'
Like '"@ind_num_asc"', but the numeric indices are ordered from Like '"@ind_num_asc"', but the numeric indices are ordered from
high to low. high to low.
'"@val_type_desc"' '"@val_type_desc"'
Like '"@val_type_asc"', but the element values, based on type, are Like '"@val_type_asc"', but the element values, based on type, are
ordered from high to low. Subarrays, if present, come out first. ordered from high to low. Subarrays, if present, come out first.
'"@val_str_desc"' '"@val_str_desc"'
Like '"@val_str_asc"', but the element values, treated as strings, Like '"@val_str_asc"', but the element values, treated as strings,
are ordered from high to low. Subarrays, if present, come out are ordered from high to low. If the string values are identical,
first. the index string values are compared instead. When comparing
non-scalar values, '"@val_type_desc"' sort ordering is used, so
subarrays, if present, come out first.
'"@val_num_desc"' '"@val_num_desc"'
Like '"@val_num_asc"', but the element values, treated as numbers, Like '"@val_num_asc"', but the element values, treated as numbers,
are ordered from high to low. Subarrays, if present, come out are ordered from high to low. If the numeric values are equal, the
first. string values are compared instead. If they are also identical,
the index string values are compared instead. Non-scalar values
are compared using '"@val_type_desc"' sort ordering, so subarrays,
if present, come out first.
The array traversal order is determined before the 'for' loop starts The array traversal order is determined before the 'for' loop starts
to run. Changing 'PROCINFO["sorted_in"]' in the loop body does not to run. Changing 'PROCINFO["sorted_in"]' in the loop body does not
affect the loop. For example: affect the loop. For example:
$ gawk ' $ gawk '
> BEGIN { > BEGIN {
> a[4] = 4 > a[4] = 4
> a[3] = 3 > a[3] = 3
> for (i in a) > for (i in a)
skipping to change at line 12595 skipping to change at line 12720
The 'asorti()' function works similarly to 'asort()'; however, the The 'asorti()' function works similarly to 'asort()'; however, the
_indices_ are sorted, instead of the values. Thus, in the previous _indices_ are sorted, instead of the values. Thus, in the previous
example, starting with the same initial set of indices and values example, starting with the same initial set of indices and values
in 'a', calling 'asorti(a)' would yield: in 'a', calling 'asorti(a)' would yield:
a[1] = "first" a[1] = "first"
a[2] = "last" a[2] = "last"
a[3] = "middle" a[3] = "middle"
NOTE: Due to implementation limitations, you may not use
either 'SYMTAB' or 'FUNCTAB' as arguments to these functions,
even if providing a second array to use for the actual
sorting. Attempting to do so produces a fatal error. This
restriction may be lifted in the future.
'gensub(REGEXP, REPLACEMENT, HOW' [', TARGET']') #' 'gensub(REGEXP, REPLACEMENT, HOW' [', TARGET']') #'
Search the target string TARGET for matches of the regular Search the target string TARGET for matches of the regular
expression REGEXP. If HOW is a string beginning with 'g' or 'G' expression REGEXP. If HOW is a string beginning with 'g' or 'G'
(short for "global"), then replace all matches of REGEXP with (short for "global"), then replace all matches of REGEXP with
REPLACEMENT. Otherwise, treat HOW as a number indicating which REPLACEMENT. Otherwise, treat HOW as a number indicating which
match of REGEXP to replace. Treat numeric values less than one as match of REGEXP to replace. Treat numeric values less than one as
if they were one. If no TARGET is supplied, use '$0'. Return the if they were one. If no TARGET is supplied, use '$0'. Return the
modified string as the result of the function. The original target modified string as the result of the function. The original target
string is _not_ changed. string is _not_ changed.
skipping to change at line 16211 skipping to change at line 16342
break; break;
case '?': case '?':
default: default:
usage(); usage();
break; break;
} }
} }
... ...
} }
The GNU project's version of the original Unix utilities popularized
the use of long command line options. For example, '--help' in addition
to '-h'. Arguments to long options are either provided as separate
command line arguments ('--source 'PROGRAM-TEXT'') or separated from the
option with an '=' sign ('--source='PROGRAM-TEXT'').
As a side point, 'gawk' actually uses the GNU 'getopt_long()' As a side point, 'gawk' actually uses the GNU 'getopt_long()'
function to process both normal and GNU-style long options (*note function to process both normal and GNU-style long options (*note
Options::). Options::).
The abstraction provided by 'getopt()' is very useful and is quite The abstraction provided by 'getopt()' is very useful and is quite
handy in 'awk' programs as well. Following is an 'awk' version of handy in 'awk' programs as well. Following is an 'awk' version of
'getopt()'. This function highlights one of the greatest weaknesses in 'getopt()' that accepts both short and long options.
'awk', which is that it is very poor at manipulating single characters.
Repeated calls to 'substr()' are necessary for accessing individual This function highlights one of the greatest weaknesses in 'awk',
characters (*note String Functions::).(1) which is that it is very poor at manipulating single characters. The
function needs repeated calls to 'substr()' in order to access
individual characters (*note String Functions::).(1)
The discussion that follows walks through the code a bit at a time: The discussion that follows walks through the code a bit at a time:
# getopt.awk --- Do C library getopt(3) function in awk # getopt.awk --- Do C library getopt(3) function in awk
# Also supports long options.
# External variables: # External variables:
# Optind -- index in ARGV of first nonoption argument # Optind -- index in ARGV of first nonoption argument
# Optarg -- string value of argument to current option # Optarg -- string value of argument to current option
# Opterr -- if nonzero, print our own diagnostic # Opterr -- if nonzero, print our own diagnostic
# Optopt -- current option letter # Optopt -- current option letter
# Returns: # Returns:
# -1 at end of options # -1 at end of options
# "?" for unrecognized option # "?" for unrecognized option
# <c> a character representing the current option # <s> a string representing the current option
# Private Data: # Private Data:
# _opti -- index in multiflag option, e.g., -abc # _opti -- index in multiflag option, e.g., -abc
The function starts out with comments presenting a list of the global The function starts out with comments presenting a list of the global
variables it uses, what the return values are, what they mean, and any variables it uses, what the return values are, what they mean, and any
global variables that are "private" to this library function. Such global variables that are "private" to this library function. Such
documentation is essential for any program, and particularly for library documentation is essential for any program, and particularly for library
functions. functions.
The 'getopt()' function first checks that it was indeed called with a The 'getopt()' function first checks that it was indeed called with a
string of options (the 'options' parameter). If 'options' has a zero string of options (the 'options' parameter). If both 'options' and
length, 'getopt()' immediately returns -1: 'longoptions' have a zero length, 'getopt()' immediately returns -1:
function getopt(argc, argv, options, thisopt, i) function getopt(argc, argv, options, longopts, thisopt, i, j)
{ {
if (length(options) == 0) # no options given if (length(options) == 0 && length(longopts) == 0)
return -1 return -1 # no options given
if (argv[Optind] == "--") { # all done if (argv[Optind] == "--") { # all done
Optind++ Optind++
_opti = 0 _opti = 0
return -1 return -1
} else if (argv[Optind] !~ /^-[^:[:space:]]/) { } else if (argv[Optind] !~ /^-[^:[:space:]]/) {
_opti = 0 _opti = 0
return -1 return -1
} }
The next thing to check for is the end of the options. A '--' ends The next thing to check for is the end of the options. A '--' ends
the command-line options, as does any command-line argument that does the command-line options, as does any command-line argument that does
not begin with a '-'. 'Optind' is used to step through the array of not begin with a '-' (unless it is an argument to a preceding option).
command-line arguments; it retains its value across calls to 'getopt()', 'Optind' steps through the array of command-line arguments; it retains
because it is a global variable. its value across calls to 'getopt()', because it is a global variable.
The regular expression that is used, '/^-[^:[:space:]/', checks for a The regular expression '/^-[^:[:space:]/' checks for a '-' followed
'-' followed by anything that is not whitespace and not a colon. If the by anything that is not whitespace and not a colon. If the current
current command-line argument does not match this pattern, it is not an command-line argument does not match this pattern, it is not an option,
option, and it ends option processing. Continuing on: and it ends option processing. Now, we check to see if we are
processing a short (single letter) option, or a long option (indicated
if (_opti == 0) by two dashes, e.g., '--filename'). If it is a short option, we
_opti = 2 continue on:
thisopt = substr(argv[Optind], _opti, 1)
Optopt = thisopt if (argv[Optind] !~ /^--/) { # if this is a short option
i = index(options, thisopt) if (_opti == 0)
if (i == 0) { _opti = 2
if (Opterr) thisopt = substr(argv[Optind], _opti, 1)
printf("%c -- invalid option\n", thisopt) > "/dev/stderr" Optopt = thisopt
if (_opti >= length(argv[Optind])) { i = index(options, thisopt)
Optind++ if (i == 0) {
_opti = 0 if (Opterr)
} else printf("%c -- invalid option\n", thisopt) > "/dev/stderr"
_opti++ if (_opti >= length(argv[Optind])) {
return "?" Optind++
} _opti = 0
} else
_opti++
return "?"
}
The '_opti' variable tracks the position in the current command-line The '_opti' variable tracks the position in the current command-line
argument ('argv[Optind]'). If multiple options are grouped together argument ('argv[Optind]'). If multiple options are grouped together
with one '-' (e.g., '-abx'), it is necessary to return them to the user with one '-' (e.g., '-abx'), it is necessary to return them to the user
one at a time. one at a time.
If '_opti' is equal to zero, it is set to two, which is the index in If '_opti' is equal to zero, it is set to two, which is the index in
the string of the next character to look at (we skip the '-', which is the string of the next character to look at (we skip the '-', which is
at position one). The variable 'thisopt' holds the character, obtained at position one). The variable 'thisopt' holds the character, obtained
with 'substr()'. It is saved in 'Optopt' for the main program to use. with 'substr()'. It is saved in 'Optopt' for the main program to use.
skipping to change at line 16317 skipping to change at line 16461
to the next option character. If '_opti' is greater than or equal to to the next option character. If '_opti' is greater than or equal to
the length of the current command-line argument, it is necessary to move the length of the current command-line argument, it is necessary to move
on to the next argument, so 'Optind' is incremented and '_opti' is reset on to the next argument, so 'Optind' is incremented and '_opti' is reset
to zero. Otherwise, 'Optind' is left alone and '_opti' is merely to zero. Otherwise, 'Optind' is left alone and '_opti' is merely
incremented. incremented.
In any case, because the option is invalid, 'getopt()' returns '"?"'. In any case, because the option is invalid, 'getopt()' returns '"?"'.
The main program can examine 'Optopt' if it needs to know what the The main program can examine 'Optopt' if it needs to know what the
invalid option letter actually is. Continuing on: invalid option letter actually is. Continuing on:
if (substr(options, i + 1, 1) == ":") { if (substr(options, i + 1, 1) == ":") {
# get option argument # get option argument
if (length(substr(argv[Optind], _opti + 1)) > 0) if (length(substr(argv[Optind], _opti + 1)) > 0)
Optarg = substr(argv[Optind], _opti + 1) Optarg = substr(argv[Optind], _opti + 1)
else else
Optarg = argv[++Optind] Optarg = argv[++Optind]
_opti = 0 _opti = 0
} else } else
Optarg = "" Optarg = ""
If the option requires an argument, the option letter is followed by If the option requires an argument, the option letter is followed by
a colon in the 'options' string. If there are remaining characters in a colon in the 'options' string. If there are remaining characters in
the current command-line argument ('argv[Optind]'), then the rest of the current command-line argument ('argv[Optind]'), then the rest of
that string is assigned to 'Optarg'. Otherwise, the next command-line that string is assigned to 'Optarg'. Otherwise, the next command-line
argument is used ('-xFOO' versus '-x FOO'). In either case, '_opti' is argument is used ('-xFOO' versus '-x FOO'). In either case, '_opti' is
reset to zero, because there are no more characters left to examine in reset to zero, because there are no more characters left to examine in
the current command-line argument. Continuing: the current command-line argument. Continuing:
if (_opti == 0 || _opti >= length(argv[Optind])) { if (_opti == 0 || _opti >= length(argv[Optind])) {
Optind++
_opti = 0
} else
_opti++
return thisopt
Finally, for a short option, if '_opti' is either zero or greater
than the length of the current command-line argument, it means this
element in 'argv' is through being processed, so 'Optind' is incremented
to point to the next element in 'argv'. If neither condition is true,
then only '_opti' is incremented, so that the next option letter can be
processed on the next call to 'getopt()'.
On the other hand, if the earlier test found that this was a long
option, we take a different branch:
} else {
j = index(argv[Optind], "=")
if (j > 0)
thisopt = substr(argv[Optind], 3, j - 3)
else
thisopt = substr(argv[Optind], 3)
Optopt = thisopt
First, we search this option for a possible embedded equal sign, as
the specification of long options allows an argument to an option
'--someopt:' to be specified as '--someopt=answer' as well as
'--someopt answer'.
i = match(longopts, "(^|,)" thisopt "($|[,:])")
if (i == 0) {
if (Opterr)
printf("%s -- invalid option\n", thisopt) > "/dev/stderr"
Optind++
return "?"
}
Next, we try to find the current option in 'longopts'. The regular
expression given to 'match()', '"(^|,)" thisopt "($|[,:])"', matches
this option at the beginning of 'longopts', or at the beginning of a
subsequent long option (the previous long option would have been
terminated by a comma), and, in any case, either at the end of the
'longopts' string ('$'), or followed by a comma (separating this option
from a subsequent option) or a colon (indicating this long option takes
an argument ('[,:]').
Using this regular expression, we check to see if the current option
might possibly be in 'longopts' (if 'longopts' is not specified, this
test will also fail). In case of an error, we possibly print an error
message and then return '"?"'. Continuing on:
if (substr(longopts, i+1+length(thisopt), 1) == ":") {
if (j > 0)
Optarg = substr(argv[Optind], j + 1)
else
Optarg = argv[++Optind]
} else
Optarg = ""
We now check to see if this option takes an argument and, if so, we
set 'Optarg' to the value of that argument (either a value after an
equal sign specified on the command line, immediately adjoining the long
option string, or as the next argument on the command line).
Optind++ Optind++
_opti = 0 return thisopt
} else }
_opti++
return thisopt
} }
Finally, if '_opti' is either zero or greater than the length of the We increase 'Optind' (which we already increased once if a required
current command-line argument, it means this element in 'argv' is argument was separated from its option by an equal sign), and return the
through being processed, so 'Optind' is incremented to point to the next long option (minus its leading dashes).
element in 'argv'. If neither condition is true, then only '_opti' is
incremented, so that the next option letter can be processed on the next
call to 'getopt()'.
The 'BEGIN' rule initializes both 'Opterr' and 'Optind' to one. The 'BEGIN' rule initializes both 'Opterr' and 'Optind' to one.
'Opterr' is set to one, because the default behavior is for 'getopt()' 'Opterr' is set to one, because the default behavior is for 'getopt()'
to print a diagnostic message upon seeing an invalid option. 'Optind' to print a diagnostic message upon seeing an invalid option. 'Optind'
is set to one, because there's no reason to look at the program name, is set to one, because there's no reason to look at the program name,
which is in 'ARGV[0]': which is in 'ARGV[0]':
BEGIN { BEGIN {
Opterr = 1 # default is to diagnose Opterr = 1 # default is to diagnose
Optind = 1 # skip ARGV[0] Optind = 1 # skip ARGV[0]
# test program # test program
if (_getopt_test) { if (_getopt_test) {
while ((_go_c = getopt(ARGC, ARGV, "ab:cd")) != -1) _myshortopts = "ab:cd"
printf("c = <%c>, Optarg = <%s>\n", _mylongopts = "longa,longb:,otherc,otherd"
_go_c, Optarg)
while ((_go_c = getopt(ARGC, ARGV, _myshortopts, _mylongopts)) != -
1)
printf("c = <%s>, Optarg = <%s>\n", _go_c, Optarg)
printf("non-option arguments:\n") printf("non-option arguments:\n")
for (; Optind < ARGC; Optind++) for (; Optind < ARGC; Optind++)
printf("\tARGV[%d] = <%s>\n", printf("\tARGV[%d] = <%s>\n", Optind, ARGV[Optind])
Optind, ARGV[Optind])
} }
} }
The rest of the 'BEGIN' rule is a simple test program. Here are the The rest of the 'BEGIN' rule is a simple test program. Here are the
results of two sample runs of the test program: results of some sample runs of the test program:
$ awk -f getopt.awk -v _getopt_test=1 -- -a -cbARG bax -x $ awk -f getopt.awk -v _getopt_test=1 -- -a -cbARG bax -x
-| c = <a>, Optarg = <> -| c = <a>, Optarg = <>
-| c = <c>, Optarg = <> -| c = <c>, Optarg = <>
-| c = <b>, Optarg = <ARG> -| c = <b>, Optarg = <ARG>
-| non-option arguments: -| non-option arguments:
-| ARGV[3] = <bax> -| ARGV[3] = <bax>
-| ARGV[4] = <-x> -| ARGV[4] = <-x>
$ awk -f getopt.awk -v _getopt_test=1 -- -a -x -- xyz abc $ awk -f getopt.awk -v _getopt_test=1 -- -a -x -- xyz abc
-| c = <a>, Optarg = <> -| c = <a>, Optarg = <>
error-> x -- invalid option error-> x -- invalid option
-| c = <?>, Optarg = <> -| c = <?>, Optarg = <>
-| non-option arguments: -| non-option arguments:
-| ARGV[4] = <xyz> -| ARGV[4] = <xyz>
-| ARGV[5] = <abc> -| ARGV[5] = <abc>
In both runs, the first '--' terminates the arguments to 'awk', so $ awk -f getopt.awk -v _getopt_test=1 -- -a \
> --longa -b xx --longb=foo=bar --otherd --otherc arg1 arg2
-| c = <a>, Optarg = <>
-| c = <longa>, Optarg = <>
-| c = <b>, Optarg = <xx>
-| c = <longb>, Optarg = <foo=bar>
-| c = <otherd>, Optarg = <>
-| c = <otherc>, Optarg = <>
-| non-option arguments:
-| ARGV[8] = <arg1>
-| ARGV[9] = <arg2>
In all the runs, the first '--' terminates the arguments to 'awk', so
that it does not try to interpret the '-a', etc., as its own options. that it does not try to interpret the '-a', etc., as its own options.
NOTE: After 'getopt()' is through, user-level code must clear out NOTE: After 'getopt()' is through, user-level code must clear out
all the elements of 'ARGV' from 1 to 'Optind', so that 'awk' does all the elements of 'ARGV' from 1 to 'Optind', so that 'awk' does
not try to process the command-line options as file names. not try to process the command-line options as file names.
Using '#!' with the '-E' option may help avoid conflicts between your Using '#!' with the '-E' option may help avoid conflicts between your
program's options and 'gawk''s options, as '-E' causes 'gawk' to abandon program's options and 'gawk''s options, as '-E' causes 'gawk' to abandon
processing of further options (*note Executable Scripts:: and *note processing of further options (*note Executable Scripts:: and *note
Options::). Options::).
skipping to change at line 18828 skipping to change at line 19044
} }
This program also provides a foundation for generating other useful This program also provides a foundation for generating other useful
information. For example, using the following 'print' statement in the information. For example, using the following 'print' statement in the
'END' rule indicates how often a particular command is used: 'END' rule indicates how often a particular command is used:
print data[lines[i]], lines[i] print data[lines[i]], lines[i]
This works because 'data[$0]' is incremented each time a line is seen. This works because 'data[$0]' is incremented each time a line is seen.
Rick van Rein offers the following one-liner to do the same job of
removing duplicates from unsorted text:
awk '{ if (! seen[$0]++) print }'
This can be simplified even further, at the risk of becoming almost
too obscure:
awk '! seen[$0]++'
This version uses the expression as a pattern, relying on 'awk''s
default action of printing the line when the pattern is true.
File: gawk.info, Node: Extract Program, Next: Simple Sed, Prev: History Sorti ng, Up: Miscellaneous Programs File: gawk.info, Node: Extract Program, Next: Simple Sed, Prev: History Sorti ng, Up: Miscellaneous Programs
11.3.7 Extracting Programs from Texinfo Source Files 11.3.7 Extracting Programs from Texinfo Source Files
---------------------------------------------------- ----------------------------------------------------
The nodes *note Library Functions::, and *note Sample Programs::, are The nodes *note Library Functions::, and *note Sample Programs::, are
the top level nodes for a large number of 'awk' programs. If you want the top level nodes for a large number of 'awk' programs. If you want
to experiment with these programs, it is tedious to type them in by to experiment with these programs, it is tedious to type them in by
hand. Here we present a program that can extract parts of a Texinfo hand. Here we present a program that can extract parts of a Texinfo
input file into separate files. input file into separate files.
skipping to change at line 22518 skipping to change at line 22747
This major node describes a feature that is specific to 'gawk'. This major node describes a feature that is specific to 'gawk'.
CAUTION: This feature described in this chapter is new. It is CAUTION: This feature described in this chapter is new. It is
entirely possible, and even likely, that there are dark corners (if entirely possible, and even likely, that there are dark corners (if
not bugs) still lurking within the implementation. If you find any not bugs) still lurking within the implementation. If you find any
such, please report them (*Note Bugs::). such, please report them (*Note Bugs::).
* Menu: * Menu:
* Global Namespace:: The global namespace in standard 'awk'. * Global Namespace:: The global namespace in standard
'awk'.
* Qualified Names:: How to qualify names with a namespace. * Qualified Names:: How to qualify names with a namespace.
* Default Namespace:: The default namespace. * Default Namespace:: The default namespace.
* Changing The Namespace:: How to change the namespace. * Changing The Namespace:: How to change the namespace.
* Naming Rules:: Namespace and Component Naming Rules. * Naming Rules:: Namespace and Component Naming Rules.
* Internal Name Management:: How names are stored internally. * Internal Name Management:: How names are stored internally.
* Namespace Example:: An example of code using a namespace. * Namespace Example:: An example of code using a namespace.
* Namespace And Features:: Namespaces and other 'gawk' features. * Namespace And Features:: Namespaces and other 'gawk' features.
* Namespace Summary:: Summarizing namespaces. * Namespace Summary:: Summarizing namespaces.
File: gawk.info, Node: Global Namespace, Next: Qualified Names, Up: Namespace s File: gawk.info, Node: Global Namespace, Next: Qualified Names, Up: Namespace s
skipping to change at line 25378 skipping to change at line 25608
function to get its value more efficiently. Return false if the function to get its value more efficiently. Return false if the
value cannot be retrieved. value cannot be retrieved.
'awk_bool_t sym_update_scalar(awk_scalar_t cookie, awk_value_t *value);' 'awk_bool_t sym_update_scalar(awk_scalar_t cookie, awk_value_t *value);'
Update the value associated with a scalar cookie. Return false if Update the value associated with a scalar cookie. Return false if
the new value is not of type 'AWK_STRING', 'AWK_STRNUM', the new value is not of type 'AWK_STRING', 'AWK_STRNUM',
'AWK_REGEX', or 'AWK_NUMBER'. Here too, the predefined variables 'AWK_REGEX', or 'AWK_NUMBER'. Here too, the predefined variables
may not be updated. may not be updated.
It is not obvious at first glance how to work with scalar cookies or It is not obvious at first glance how to work with scalar cookies or
what their raison d'e^tre really is. In theory, the 'sym_lookup()' and what their raison d'être really is. In theory, the 'sym_lookup()' and
'sym_update()' routines are all you really need to work with variables. 'sym_update()' routines are all you really need to work with variables.
For example, you might have code that looks up the value of a variable, For example, you might have code that looks up the value of a variable,
evaluates a condition, and then possibly changes the value of the evaluates a condition, and then possibly changes the value of the
variable based on the result of that evaluation, like so: variable based on the result of that evaluation, like so:
/* do_magic --- do something really great */ /* do_magic --- do something really great */
static awk_value_t * static awk_value_t *
do_magic(int nargs, awk_value_t *result) do_magic(int nargs, awk_value_t *result)
{ {
skipping to change at line 27293 skipping to change at line 27523
extension makes use of the namespace facility to place all the variables extension makes use of the namespace facility to place all the variables
and functions in the 'inplace' namespace (*note Namespaces::): and functions in the 'inplace' namespace (*note Namespaces::):
# inplace --- load and invoke the inplace extension. # inplace --- load and invoke the inplace extension.
@load "inplace" @load "inplace"
# Please set inplace::suffix to make a backup copy. For example, you may # Please set inplace::suffix to make a backup copy. For example, you may
# want to set inplace::suffix to .bak on the command line or in a BEGIN rul e. # want to set inplace::suffix to .bak on the command line or in a BEGIN rul e.
# Before there were namespaces in gawk, this extension used
# INPLACE_SUFFIX as the variable for making backup copies. We allow this
# too, so that any code that used the previous version continues to work.
# By default, each filename on the command line will be edited inplace. # By default, each filename on the command line will be edited inplace.
# But you can selectively disable this by adding an inplace=0 argument # But you can selectively disable this by adding an inplace::enable=0 argum ent
# prior to files that you do not want to process this way. You can then # prior to files that you do not want to process this way. You can then
# reenable it later on the commandline by putting inplace=1 before files # reenable it later on the commandline by putting inplace::enable=1 before files
# that you wish to be subject to inplace editing. # that you wish to be subject to inplace editing.
# N.B. We call inplace::end() in the BEGINFILE and END rules so that any # N.B. We call inplace::end() in the BEGINFILE and END rules so that any
# actions in an ENDFILE rule will be redirected as expected. # actions in an ENDFILE rule will be redirected as expected.
@namespace "inplace" @namespace "inplace"
BEGIN { BEGIN {
enable = 1 # enabled by default enable = 1 # enabled by default
} }
BEGINFILE { BEGINFILE {
sfx = (suffix ? suffix : awk::INPLACE_SUFFIX)
if (filename != "") if (filename != "")
end(filename, suffix) end(filename, sfx)
if (enable) if (enable)
begin(filename = FILENAME, suffix) begin(filename = FILENAME, sfx)
else else
filename = "" filename = ""
} }
END { END {
if (filename != "") if (filename != "")
end(filename, suffix) end(filename, (suffix ? suffix : awk::INPLACE_SUFFIX))
} }
For each regular file that is processed, the extension redirects For each regular file that is processed, the extension redirects
standard output to a temporary file configured to have the same owner standard output to a temporary file configured to have the same owner
and permissions as the original. After the file has been processed, the and permissions as the original. After the file has been processed, the
extension restores standard output to its original destination. If extension restores standard output to its original destination. If
'inplace::suffix' is not an empty string, the original file is linked to 'inplace::suffix' is not an empty string, the original file is linked to
a backup file name created by appending that suffix. Finally, the a backup file name created by appending that suffix. Finally, the
temporary file is renamed to the original file name. temporary file is renamed to the original file name.
skipping to change at line 27427 skipping to change at line 27662
Table 17.4: File types returned by the 'readdir' extension Table 17.4: File types returned by the 'readdir' extension
On systems without the file type information, the third field is On systems without the file type information, the third field is
always 'u'. always 'u'.
NOTE: On GNU/Linux systems, there are filesystems that don't NOTE: On GNU/Linux systems, there are filesystems that don't
support the 'd_type' entry (see the readdir(3) manual page), and so support the 'd_type' entry (see the readdir(3) manual page), and so
the file type is always 'u'. You can use the 'filefuncs' extension the file type is always 'u'. You can use the 'filefuncs' extension
to call 'stat()' in order to get correct type information. to call 'stat()' in order to get correct type information.
By default, if a directory cannot be opened (due to permission
problems, for example), 'gawk' will exit. As with regular files, this
situation can be handled using a 'BEGINFILE' rule that checks 'ERRNO'
and prints an error or otherwise handles the problem.
Here is an example: Here is an example:
@load "readdir" @load "readdir"
... ...
BEGIN { FS = "/" } BEGIN { FS = "/" }
{ print "file name is", $2 } { print "file name is", $2 }
File: gawk.info, Node: Extension Sample Revout, Next: Extension Sample Rev2way , Prev: Extension Sample Readdir, Up: Extension Samples File: gawk.info, Node: Extension Sample Revout, Next: Extension Sample Rev2way , Prev: Extension Sample Readdir, Up: Extension Samples
17.7.7 Reversing Output 17.7.7 Reversing Output
skipping to change at line 27559 skipping to change at line 27799
if (contents == "" && ERRNO != "") { if (contents == "" && ERRNO != "") {
print("problem reading file", ERRNO) > "/dev/stderr" print("problem reading file", ERRNO) > "/dev/stderr"
... ...
} }
File: gawk.info, Node: Extension Sample Time, Next: Extension Sample API Tests , Prev: Extension Sample Readfile, Up: Extension Samples File: gawk.info, Node: Extension Sample Time, Next: Extension Sample API Tests , Prev: Extension Sample Readfile, Up: Extension Samples
17.7.11 Extension Time Functions 17.7.11 Extension Time Functions
-------------------------------- --------------------------------
The 'time' extension adds two functions, named 'gettimeofday()' and CAUTION: As 'gawk' version 5.1.0, this extension is considered to
be obsolete. It is replaced by the 'timex' extension in
'gawkextlib' (*note gawkextlib::).
For version 5.1, no warning will be issued if this extension is
used. For the next major release, a warning will be issued. In
the release after that this extension will be removed from the
distribution.
The 'time' extension adds two functions, named 'gettimeofday()' and
'sleep()', as follows: 'sleep()', as follows:
'@load "time"' '@load "time"'
This is how you load the extension. This is how you load the extension.
'the_time = gettimeofday()' 'the_time = gettimeofday()'
Return the time in seconds that has elapsed since 1970-01-01 UTC as Return the time in seconds that has elapsed since 1970-01-01 UTC as
a floating-point value. If the time is unavailable on this a floating-point value. If the time is unavailable on this
platform, return -1 and set 'ERRNO'. The returned time should have platform, return -1 and set 'ERRNO'. The returned time should have
sub-second precision, but the actual precision may vary based on sub-second precision, but the actual precision may vary based on
skipping to change at line 27948 skipping to change at line 28197
(*note I/O Functions::) (*note I/O Functions::)
* The 'nextfile' statement (*note Nextfile Statement::) * The 'nextfile' statement (*note Nextfile Statement::)
* The ability to delete all of an array at once with 'delete ARRAY' * The ability to delete all of an array at once with 'delete ARRAY'
(*note Delete::) (*note Delete::)
*Note Common Extensions:: for a list of common extensions not *Note Common Extensions:: for a list of common extensions not
permitted by the POSIX standard. permitted by the POSIX standard.
The 2008 POSIX standard can be found online at The 2018 POSIX standard can be found online at
<http://pubs.opengroup.org/onlinepubs/9699919799/>. <https://pubs.opengroup.org/onlinepubs/9699919799/>.
File: gawk.info, Node: BTL, Next: POSIX/GNU, Prev: POSIX, Up: Language Histo ry File: gawk.info, Node: BTL, Next: POSIX/GNU, Prev: POSIX, Up: Language Histo ry
A.4 Extensions in Brian Kernighan's 'awk' A.4 Extensions in Brian Kernighan's 'awk'
========================================= =========================================
Brian Kernighan has made his version available via his home page (*note Brian Kernighan has made his version available via his home page (*note
Other Versions::). Other Versions::).
This minor node describes common extensions that originally appeared This minor node describes common extensions that originally appeared
skipping to change at line 28602 skipping to change at line 28851
* Support for MirBSD was removed. * Support for MirBSD was removed.
* Support for GNU/Linux on Alpha was removed. * Support for GNU/Linux on Alpha was removed.
Version 5.0 added the following features: Version 5.0 added the following features:
* The 'PROCINFO["platform"]' array element, which allows you to write * The 'PROCINFO["platform"]' array element, which allows you to write
code that takes the operating system / platform into account. code that takes the operating system / platform into account.
Version 5.1 was created to release 'gawk' with a correct major
version number for the API. This was overlooked for version 5.0,
unfortunately. It added the following features:
* The index for this manual was completely reworked.
* Support was added for MSYS2.
File: gawk.info, Node: Common Extensions, Next: Ranges and Locales, Prev: Fea ture History, Up: Language History File: gawk.info, Node: Common Extensions, Next: Ranges and Locales, Prev: Fea ture History, Up: Language History
A.7 Common Extensions Summary A.7 Common Extensions Summary
============================= =============================
The following table summarizes the common extensions supported by The following table summarizes the common extensions supported by
'gawk', Brian Kernighan's 'awk', and 'mawk', the three most widely used 'gawk', Brian Kernighan's 'awk', and 'mawk', the three most widely used
freely available versions of 'awk' (*note Other Versions::). freely available versions of 'awk' (*note Other Versions::).
Feature BWK 'awk' 'mawk' 'gawk' Now standard Feature BWK 'awk' 'mawk' 'gawk' Now standard
skipping to change at line 28625 skipping to change at line 28882
'/dev/stdin' special file X X X '/dev/stdin' special file X X X
'/dev/stdout' special file X X X '/dev/stdout' special file X X X
'/dev/stderr' special file X X X '/dev/stderr' special file X X X
'delete' without subscript X X X X 'delete' without subscript X X X X
'fflush()' function X X X X 'fflush()' function X X X X
'length()' of an array X X X 'length()' of an array X X X
'nextfile' statement X X X X 'nextfile' statement X X X X
'**' and '**=' operators X X '**' and '**=' operators X X
'func' keyword X X 'func' keyword X X
'BINMODE' variable X X 'BINMODE' variable X X
'RS' as regexp X X 'RS' as regexp X X X
Time-related functions X X Time-related functions X X
File: gawk.info, Node: Ranges and Locales, Next: Contributors, Prev: Common E xtensions, Up: Language History File: gawk.info, Node: Ranges and Locales, Next: Contributors, Prev: Common E xtensions, Up: Language History
A.8 Regexp Ranges and Locales: A Long Sad Story A.8 Regexp Ranges and Locales: A Long Sad Story
=============================================== ===============================================
This minor node describes the confusing history of ranges within regular This minor node describes the confusing history of ranges within regular
expressions and their interactions with locales, and how this affected expressions and their interactions with locales, and how this affected
different versions of 'gawk'. different versions of 'gawk'.
skipping to change at line 28729 skipping to change at line 28986
---------- Footnotes ---------- ---------- Footnotes ----------
(1) And Life was good. (1) And Life was good.
(2) And thus was born the Campaign for Rational Range Interpretation (2) And thus was born the Campaign for Rational Range Interpretation
(or RRI). A number of GNU tools have already implemented this change, or (or RRI). A number of GNU tools have already implemented this change, or
will soon. Thanks to Karl Berry for coining the phrase "Rational Range will soon. Thanks to Karl Berry for coining the phrase "Rational Range
Interpretation." Interpretation."
(3) See the standard (3) See the standard
(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_ 03_05) (https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09 _03_05)
and its rationale and its rationale
(http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap09.html#tag_21_ 09_03_05). (https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap09.html#tag_21 _09_03_05).
File: gawk.info, Node: Contributors, Next: History summary, Prev: Ranges and Locales, Up: Language History File: gawk.info, Node: Contributors, Next: History summary, Prev: Ranges and Locales, Up: Language History
A.9 Major Contributors to 'gawk' A.9 Major Contributors to 'gawk'
================================ ================================
Always give credit where credit is due. Always give credit where credit is due.
-- _Anonymous_ -- _Anonymous_
This minor node names the major contributors to 'gawk' and/or this This minor node names the major contributors to 'gawk' and/or this
skipping to change at line 28803 skipping to change at line 29060
* For many years, Dr. Darrel Hankerson acted as coordinator for the * For many years, Dr. Darrel Hankerson acted as coordinator for the
various ports to different PC platforms and created binary various ports to different PC platforms and created binary
distributions for various PC operating systems. He was also distributions for various PC operating systems. He was also
instrumental in keeping the documentation up to date for the instrumental in keeping the documentation up to date for the
various PC platforms. various PC platforms.
* Christos Zoulas provided the 'extension()' built-in function for * Christos Zoulas provided the 'extension()' built-in function for
dynamically adding new functions. (This was obsoleted at 'gawk' dynamically adding new functions. (This was obsoleted at 'gawk'
4.1.) 4.1.)
* Ju"rgen Kahrs contributed the initial version of the TCP/IP * Jürgen Kahrs contributed the initial version of the TCP/IP
networking code and documentation, and motivated the inclusion of networking code and documentation, and motivated the inclusion of
the '|&' operator. the '|&' operator.
* Stephen Davies provided the initial port to Tandem systems and its * Stephen Davies provided the initial port to Tandem systems and its
documentation. (However, this is no longer supported.) He was documentation. (However, this is no longer supported.) He was
also instrumental in the initial work to integrate the byte-code also instrumental in the initial work to integrate the byte-code
internals into the 'gawk' code base. Additionally, he did most of internals into the 'gawk' code base. Additionally, he did most of
the work enabling the pretty-printer to preserve and output the work enabling the pretty-printer to preserve and output
comments. comments.
skipping to change at line 28884 skipping to change at line 29141
* Antonio Giovanni Colombo rewrote a number of examples in the early * Antonio Giovanni Colombo rewrote a number of examples in the early
chapters that were severely dated, for which I am incredibly chapters that were severely dated, for which I am incredibly
grateful. He also provided and maintains the Italian translation. grateful. He also provided and maintains the Italian translation.
* Marco Curreli, together with Antonio Colombo, translated this Info * Marco Curreli, together with Antonio Colombo, translated this Info
file into Italian. It is included in the 'gawk' distribution. file into Italian. It is included in the 'gawk' distribution.
* Juan Manuel Guerrero took over maintenance of the DJGPP port. * Juan Manuel Guerrero took over maintenance of the DJGPP port.
* "Jannick" provided support for MSYS2.
* Arnold Robbins has been working on 'gawk' since 1988, at first * Arnold Robbins has been working on 'gawk' since 1988, at first
helping David Trueman, and as the primary maintainer since around helping David Trueman, and as the primary maintainer since around
1994. 1994.
File: gawk.info, Node: History summary, Prev: Contributors, Up: Language Hist ory File: gawk.info, Node: History summary, Prev: Contributors, Up: Language Hist ory
A.10 Summary A.10 Summary
============ ============
* The 'awk' language has evolved over time. The first release was * The 'awk' language has evolved over time. The first release was
skipping to change at line 28968 skipping to change at line 29227
There are two ways to get GNU software: There are two ways to get GNU software:
* Copy it from someone else who already has it. * Copy it from someone else who already has it.
* Retrieve 'gawk' from the Internet host 'ftp.gnu.org', in the * Retrieve 'gawk' from the Internet host 'ftp.gnu.org', in the
directory '/gnu/gawk'. Both anonymous 'ftp' and 'http' access are directory '/gnu/gawk'. Both anonymous 'ftp' and 'http' access are
supported. If you have the 'wget' program, you can use a command supported. If you have the 'wget' program, you can use a command
like the following: like the following:
wget https://ftp.gnu.org/gnu/gawk/gawk-5.0.1.tar.gz wget https://ftp.gnu.org/gnu/gawk/gawk-5.1.0.tar.gz
The GNU software archive is mirrored around the world. The The GNU software archive is mirrored around the world. The
up-to-date list of mirror sites is available from the main FSF website up-to-date list of mirror sites is available from the main FSF website
(https://www.gnu.org/order/ftp.html). Try to use one of the mirrors; (https://www.gnu.org/order/ftp.html). Try to use one of the mirrors;
they will be less busy, and you can usually find one closer to your they will be less busy, and you can usually find one closer to your
site. site.
You may also retrieve the 'gawk' source code from the official Git You may also retrieve the 'gawk' source code from the official Git
repository; for more information see *note Accessing The Source::. repository; for more information see *note Accessing The Source::.
File: gawk.info, Node: Extracting, Next: Distribution contents, Prev: Getting , Up: Gawk Distribution File: gawk.info, Node: Extracting, Next: Distribution contents, Prev: Getting , Up: Gawk Distribution
B.1.2 Extracting the Distribution B.1.2 Extracting the Distribution
--------------------------------- ---------------------------------
'gawk' is distributed as several 'tar' files compressed with different 'gawk' is distributed as several 'tar' files compressed with different
compression programs: 'gzip', 'bzip2', and 'xz'. For simplicity, the compression programs: 'gzip', 'bzip2', and 'xz'. For simplicity, the
rest of these instructions assume you are using the one compressed with rest of these instructions assume you are using the one compressed with
the GNU Gzip program ('gzip'). the GNU Gzip program ('gzip').
Once you have the distribution (e.g., 'gawk-5.0.1.tar.gz'), use Once you have the distribution (e.g., 'gawk-5.1.0.tar.gz'), use
'gzip' to expand the file and then use 'tar' to extract it. You can use 'gzip' to expand the file and then use 'tar' to extract it. You can use
the following pipeline to produce the 'gawk' distribution: the following pipeline to produce the 'gawk' distribution:
gzip -d -c gawk-5.0.1.tar.gz | tar -xvpf - gzip -d -c gawk-5.1.0.tar.gz | tar -xvpf -
On a system with GNU 'tar', you can let 'tar' do the decompression On a system with GNU 'tar', you can let 'tar' do the decompression
for you: for you:
tar -xvpzf gawk-5.0.1.tar.gz tar -xvpzf gawk-5.1.0.tar.gz
Extracting the archive creates a directory named 'gawk-5.0.1' in the Extracting the archive creates a directory named 'gawk-5.1.0' in the
current directory. current directory.
The distribution file name is of the form 'gawk-V.R.P.tar.gz'. The V The distribution file name is of the form 'gawk-V.R.P.tar.gz'. The V
represents the major version of 'gawk', the R represents the current represents the major version of 'gawk', the R represents the current
release of version V, and the P represents a "patch level", meaning that release of version V, and the P represents a "patch level", meaning that
minor bugs have been fixed in the release. The current patch level is minor bugs have been fixed in the release. The current patch level is
1, but when retrieving distributions, you should get the version with 0, but when retrieving distributions, you should get the version with
the highest version, release, and patch level. (Note, however, that the highest version, release, and patch level. (Note, however, that
patch levels greater than or equal to 60 denote "beta" or nonproduction patch levels greater than or equal to 60 denote "beta" or nonproduction
software; you might not want to retrieve such a version unless you don't software; you might not want to retrieve such a version unless you don't
mind experimenting.) If you are not on a Unix or GNU/Linux system, you mind experimenting.) If you are not on a Unix or GNU/Linux system, you
need to make other arrangements for getting and extracting the 'gawk' need to make other arrangements for getting and extracting the 'gawk'
distribution. You should consult a local expert. distribution. You should consult a local expert.
File: gawk.info, Node: Distribution contents, Prev: Extracting, Up: Gawk Dist ribution File: gawk.info, Node: Distribution contents, Prev: Extracting, Up: Gawk Dist ribution
B.1.3 Contents of the 'gawk' Distribution B.1.3 Contents of the 'gawk' Distribution
skipping to change at line 29231 skipping to change at line 29490
File: gawk.info, Node: Quick Installation, Next: Shell Startup Files, Up: Uni x Installation File: gawk.info, Node: Quick Installation, Next: Shell Startup Files, Up: Uni x Installation
B.2.1 Compiling 'gawk' for Unix-Like Systems B.2.1 Compiling 'gawk' for Unix-Like Systems
-------------------------------------------- --------------------------------------------
The normal installation steps should work on all modern commercial The normal installation steps should work on all modern commercial
Unix-derived systems, GNU/Linux, BSD-based systems, and the Cygwin Unix-derived systems, GNU/Linux, BSD-based systems, and the Cygwin
environment for MS-Windows. environment for MS-Windows.
After you have extracted the 'gawk' distribution, 'cd' to After you have extracted the 'gawk' distribution, 'cd' to
'gawk-5.0.1'. As with most GNU software, you configure 'gawk' for your 'gawk-5.1.0'. As with most GNU software, you configure 'gawk' for your
system by running the 'configure' program. This program is a Bourne system by running the 'configure' program. This program is a Bourne
shell script that is generated automatically using GNU Autoconf. (The shell script that is generated automatically using GNU Autoconf. (The
Autoconf software is described fully starting with *note (Autoconf, Autoconf software is described fully starting with *note (Autoconf,
autoconf,Autoconf---Generating Automatic Configuration Scripts)Top::.) autoconf,Autoconf---Generating Automatic Configuration Scripts)Top::.)
To configure 'gawk', simply run 'configure': To configure 'gawk', simply run 'configure':
sh ./configure sh ./configure
This produces a 'Makefile' and 'config.h' tailored to your system. This produces a 'Makefile' and 'config.h' tailored to your system.
skipping to change at line 29568 skipping to change at line 29827
B.3.1.4 Using 'gawk' In The Cygwin Environment B.3.1.4 Using 'gawk' In The Cygwin Environment
.............................................. ..............................................
'gawk' can be built and used "out of the box" under MS-Windows if you 'gawk' can be built and used "out of the box" under MS-Windows if you
are using the Cygwin environment (http://www.cygwin.com). This are using the Cygwin environment (http://www.cygwin.com). This
environment provides an excellent simulation of GNU/Linux, using Bash, environment provides an excellent simulation of GNU/Linux, using Bash,
GCC, GNU Make, and other GNU programs. Compilation and installation for GCC, GNU Make, and other GNU programs. Compilation and installation for
Cygwin is the same as for a Unix system: Cygwin is the same as for a Unix system:
tar -xvpzf gawk-5.0.1.tar.gz tar -xvpzf gawk-5.1.0.tar.gz
cd gawk-5.0.1 cd gawk-5.1.0
./configure ./configure
make && make check make && make check
When compared to GNU/Linux on the same system, the 'configure' step When compared to GNU/Linux on the same system, the 'configure' step
on Cygwin takes considerably longer. However, it does finish, and then on Cygwin takes considerably longer. However, it does finish, and then
the 'make' proceeds as usual. the 'make' proceeds as usual.
You may also install 'gawk' using the regular Cygwin installer. In
general Cygwin supplies the latest released version.
Recent versions of Cygwin open all files in binary mode. This means Recent versions of Cygwin open all files in binary mode. This means
that you should use 'RS = "\r?\n"' in order to be able to handle that you should use 'RS = "\r?\n"' in order to be able to handle
standard MS-Windows text files with carriage-return plus line-feed line standard MS-Windows text files with carriage-return plus line-feed line
endings. endings.
The Cygwin environment supports both the '|&' operator and TCP/IP The Cygwin environment supports both the '|&' operator and TCP/IP
networking (*note TCP/IP Networking::). networking (*note TCP/IP Networking::).
File: gawk.info, Node: MSYS, Prev: Cygwin, Up: PC Installation File: gawk.info, Node: MSYS, Prev: Cygwin, Up: PC Installation
skipping to change at line 29598 skipping to change at line 29860
............................................ ............................................
In the MSYS environment under MS-Windows, 'gawk' automatically uses In the MSYS environment under MS-Windows, 'gawk' automatically uses
binary mode for reading and writing files. Thus, there is no need to binary mode for reading and writing files. Thus, there is no need to
use the 'BINMODE' variable. use the 'BINMODE' variable.
This can cause problems with other Unix-like components that have This can cause problems with other Unix-like components that have
been ported to MS-Windows that expect 'gawk' to do automatic translation been ported to MS-Windows that expect 'gawk' to do automatic translation
of '"\r\n"', because it won't. of '"\r\n"', because it won't.
Under MSYS2, compilation using the standard './configure && make'
recipe works "out of the box."
File: gawk.info, Node: VMS Installation, Prev: PC Installation, Up: Non-Unix Installation File: gawk.info, Node: VMS Installation, Prev: PC Installation, Up: Non-Unix Installation
B.3.2 Compiling and Installing 'gawk' on Vax/VMS and OpenVMS B.3.2 Compiling and Installing 'gawk' on Vax/VMS and OpenVMS
------------------------------------------------------------ ------------------------------------------------------------
This node describes how to compile and install 'gawk' under VMS. The This node describes how to compile and install 'gawk' under VMS. The
older designation "VMS" is used throughout to refer to OpenVMS. older designation "VMS" is used throughout to refer to OpenVMS.
* Menu: * Menu:
skipping to change at line 30023 skipping to change at line 30288
systems systems
MS-DOS with DJGPP Juan Manuel Guerrero, <juan.guerrero@gmx.de> MS-DOS with DJGPP Juan Manuel Guerrero, <juan.guerrero@gmx.de>
MS-Windows with MinGW Eli Zaretskii, <eliz@gnu.org> MS-Windows with MinGW Eli Zaretskii, <eliz@gnu.org>
OS/2 Andreas Buening, <andreas.buening@nexgo.de> OS/2 Andreas Buening, <andreas.buening@nexgo.de>
VMS John Malmberg, <wb8tyw@qsl.net> VMS John Malmberg, <wb8tyw@qsl.net>
z/OS (OS/390) Daniel Richard G. <skunk@iSKUNK.ORG> z/OS (OS/390) Daniel Richard G. <skunk@iSKUNK.ORG>
Dave Pitts (Maintainer Emeritus), <dpitts@cozx.com>
If your bug is also reproducible under Unix, send a copy of your If your bug is also reproducible under Unix, send a copy of your
report to the <bug-gawk@gnu.org> email list as well. report to the <bug-gawk@gnu.org> email list as well.
File: gawk.info, Node: Other Versions, Next: Installation summary, Prev: Bugs , Up: Installation File: gawk.info, Node: Other Versions, Next: Installation summary, Prev: Bugs , Up: Installation
B.5 Other Freely Available 'awk' Implementations B.5 Other Freely Available 'awk' Implementations
================================================ ================================================
It's kind of fun to put comments like this in your awk code: It's kind of fun to put comments like this in your awk code:
skipping to change at line 30199 skipping to change at line 30463
on 'awk' for information on additional versions. on 'awk' for information on additional versions.
File: gawk.info, Node: Installation summary, Prev: Other Versions, Up: Instal lation File: gawk.info, Node: Installation summary, Prev: Other Versions, Up: Instal lation
B.6 Summary B.6 Summary
=========== ===========
* The 'gawk' distribution is available from the GNU Project's main * The 'gawk' distribution is available from the GNU Project's main
distribution site, 'ftp.gnu.org'. The canonical build recipe is: distribution site, 'ftp.gnu.org'. The canonical build recipe is:
wget https://ftp.gnu.org/gnu/gawk/gawk-5.0.1.tar.gz wget https://ftp.gnu.org/gnu/gawk/gawk-5.1.0.tar.gz
tar -xvpzf gawk-5.0.1.tar.gz tar -xvpzf gawk-5.1.0.tar.gz
cd gawk-5.0.1 cd gawk-5.1.0
./configure && make && make check ./configure && make && make check
NOTE: Because of the 'https://' URL, you may have to supply NOTE: Because of the 'https://' URL, you may have to supply
the '--no-check-certificate' option to 'wget' to download the the '--no-check-certificate' option to 'wget' to download the
file. file.
* 'gawk' may be built on non-POSIX systems as well. The currently * 'gawk' may be built on non-POSIX systems as well. The currently
supported systems are MS-Windows using MSYS, DJGPP, MinGW, and supported systems are MS-Windows using MSYS, MSYS2, DJGPP, MinGW,
Cygwin, and both Vax/VMS and OpenVMS. Instructions for each system and Cygwin, and both Vax/VMS and OpenVMS. Instructions for each
are included in this major node. system are included in this major node.
* Bug reports should be sent via email to <bug-gawk@gnu.org>. Bug * Bug reports should be sent via email to <bug-gawk@gnu.org>. Bug
reports should be in English and should include the version of reports should be in English and should include the version of
'gawk', how it was compiled, and a short program and data file that 'gawk', how it was compiled, and a short program and data file that
demonstrate the problem. demonstrate the problem.
* There are a number of other freely available 'awk' implementations. * There are a number of other freely available 'awk' implementations.
Many are POSIX-compliant; others are less so. Many are POSIX-compliant; others are less so.
File: gawk.info, Node: Notes, Next: Basic Concepts, Prev: Installation, Up: Top File: gawk.info, Node: Notes, Next: Basic Concepts, Prev: Installation, Up: Top
skipping to change at line 30926 skipping to change at line 31190
With time, the API will undoubtedly evolve; the 'gawk' developers With time, the API will undoubtedly evolve; the 'gawk' developers
expect this to be driven by user needs. For now, the current API seems expect this to be driven by user needs. For now, the current API seems
to provide a minimal yet powerful set of features for creating to provide a minimal yet powerful set of features for creating
extensions. extensions.
File: gawk.info, Node: Extension Future Growth, Prev: Extension Other Design D ecisions, Up: Extension Design File: gawk.info, Node: Extension Future Growth, Prev: Extension Other Design D ecisions, Up: Extension Design
C.5.4 Room For Future Growth C.5.4 Room For Future Growth
---------------------------- ----------------------------
The API can later be expanded, in two ways: The API can later be expanded, in at least the following way:
* 'gawk' passes an "extension id" into the extension when it first * 'gawk' passes an "extension id" into the extension when it first
loads the extension. The extension then passes this id back to loads the extension. The extension then passes this id back to
'gawk' with each function call. This mechanism allows 'gawk' to 'gawk' with each function call. This mechanism allows 'gawk' to
identify the extension calling into it, should it need to know. identify the extension calling into it, should it need to know.
* Similarly, the extension passes a "name space" into 'gawk' when it
registers each extension function. This accommodates a possible
future mechanism for grouping extension functions and possibly
avoiding name conflicts.
Of course, as of this writing, no decisions have been made with Of course, as of this writing, no decisions have been made with
respect to any of the above. respect to the above.
File: gawk.info, Node: Notes summary, Prev: Extension Design, Up: Notes File: gawk.info, Node: Notes summary, Prev: Extension Design, Up: Notes
C.6 Summary C.6 Summary
=========== ===========
* 'gawk''s extensions can be disabled with either the '--traditional' * 'gawk''s extensions can be disabled with either the '--traditional'
option or with the '--posix' option. The '--parsedebug' option is option or with the '--posix' option. The '--parsedebug' option is
available if 'gawk' is compiled with '-DDEBUG'. available if 'gawk' is compiled with '-DDEBUG'.
skipping to change at line 31727 skipping to change at line 31986
computer usage problems. (Problem Exists Between Keyboard And computer usage problems. (Problem Exists Between Keyboard And
Chair.) Chair.)
Plug-in Plug-in
See "Extensions." See "Extensions."
POSIX POSIX
The name for a series of standards that specify a Portable The name for a series of standards that specify a Portable
Operating System interface. The "IX" denotes the Unix heritage of Operating System interface. The "IX" denotes the Unix heritage of
these standards. The main standard of interest for 'awk' users is these standards. The main standard of interest for 'awk' users is
'IEEE Standard for Information Technology, Standard 1003.1-2008'. 'IEEE Standard for Information Technology, Standard
The 2008 POSIX standard can be found online at 1003.1^{TM}-2017 (Revision of IEEE Std 1003.1-2008)'. The 2018
<http://pubs.opengroup.org/onlinepubs/9699919799/>. POSIX standard can be found online at
<https://pubs.opengroup.org/onlinepubs/9699919799/>.
Precedence Precedence
The order in which operations are performed when operators are used The order in which operations are performed when operators are used
without explicit parentheses. without explicit parentheses.
Private Private
Variables and/or functions that are meant for use exclusively by Variables and/or functions that are meant for use exclusively by
library functions and not for the main 'awk' program. Special care library functions and not for the main 'awk' program. Special care
must be taken when naming such variables and functions. (*Note must be taken when naming such variables and functions. (*Note
Library Names::.) Library Names::.)
skipping to change at line 33121 skipping to change at line 33381
software license, such as the GNU General Public License, to permit software license, such as the GNU General Public License, to permit
their use in free software. their use in free software.
File: gawk.info, Node: Index, Prev: GNU Free Documentation License, Up: Top File: gawk.info, Node: Index, Prev: GNU Free Documentation License, Up: Top
Index Index
***** *****
* Menu: * Menu:
* ! (exclamation point), ! operator: Boolean Ops. (line 69)
* ! (exclamation point), ! operator <1>: Precedence. (line 51)
* ! (exclamation point), ! operator <2>: Ranges. (line 47)
* ! (exclamation point), ! operator <3>: Egrep Program. (line 174)
* ! (exclamation point), != operator: Comparison Operators.
(line 11)
* ! (exclamation point), != operator <1>: Precedence. (line 64)
* ! (exclamation point), !~ operator: Regexp Usage. (line 19) * ! (exclamation point), !~ operator: Regexp Usage. (line 19)
* ! (exclamation point), !~ operator <1>: Computed Regexps. (line 6) * ! (exclamation point), !~ operator <1>: Computed Regexps. (line 6)
* ! (exclamation point), !~ operator <2>: Case-sensitivity. (line 26) * ! (exclamation point), !~ operator <2>: Case-sensitivity. (line 26)
* ! (exclamation point), !~ operator <3>: Regexp Constants. (line 6) * ! (exclamation point), !~ operator <3>: Regexp Constants. (line 6)
* ! (exclamation point), != operator: Comparison Operators.
(line 11)
* ! (exclamation point), !~ operator <4>: Comparison Operators. * ! (exclamation point), !~ operator <4>: Comparison Operators.
(line 11) (line 11)
* ! (exclamation point), !~ operator <5>: Comparison Operators. * ! (exclamation point), !~ operator <5>: Comparison Operators.
(line 98) (line 98)
* ! (exclamation point), ! operator: Boolean Ops. (line 69)
* ! (exclamation point), ! operator <1>: Precedence. (line 51)
* ! (exclamation point), != operator <1>: Precedence. (line 64)
* ! (exclamation point), !~ operator <6>: Precedence. (line 79) * ! (exclamation point), !~ operator <6>: Precedence. (line 79)
* ! (exclamation point), !~ operator <7>: Expression Patterns. * ! (exclamation point), !~ operator <7>: Expression Patterns.
(line 24) (line 24)
* " (double quote), in regexp constants: Computed Regexps. (line 30) * ! (exclamation point), ! operator <2>: Ranges. (line 47)
* ! (exclamation point), ! operator <3>: Egrep Program. (line 174)
* " (double quote), in shell commands: Quoting. (line 54) * " (double quote), in shell commands: Quoting. (line 54)
* " (double quote), in regexp constants: Computed Regexps. (line 30)
* # (number sign), #! (executable scripts): Executable Scripts. * # (number sign), #! (executable scripts): Executable Scripts.
(line 6) (line 6)
* # (number sign), commenting: Comments. (line 6) * # (number sign), commenting: Comments. (line 6)
* $ (dollar sign), regexp operator: Regexp Operator Details.
(line 31)
* $ (dollar sign), $ field operator: Fields. (line 19) * $ (dollar sign), $ field operator: Fields. (line 19)
* $ (dollar sign), $ field operator <1>: Precedence. (line 42)
* $ (dollar sign), incrementing fields and arrays: Increment Ops. * $ (dollar sign), incrementing fields and arrays: Increment Ops.
(line 30) (line 30)
* $ (dollar sign), regexp operator: Regexp Operator Details. * $ (dollar sign), $ field operator <1>: Precedence. (line 42)
(line 31)
* % (percent sign), % operator: Precedence. (line 54)
* % (percent sign), %= operator: Assignment Ops. (line 129) * % (percent sign), %= operator: Assignment Ops. (line 129)
* % (percent sign), % operator: Precedence. (line 54)
* % (percent sign), %= operator <1>: Precedence. (line 94) * % (percent sign), %= operator <1>: Precedence. (line 94)
* & (ampersand), && operator: Boolean Ops. (line 59) * & (ampersand), && operator: Boolean Ops. (line 59)
* & (ampersand), && operator <1>: Precedence. (line 85) * & (ampersand), && operator <1>: Precedence. (line 85)
* & (ampersand), gsub()/gensub()/sub() functions and: Gory Details. * & (ampersand), gsub()/gensub()/sub() functions and: Gory Details.
(line 6) (line 6)
* ' (single quote): One-shot. (line 15) * ' (single quote): One-shot. (line 15)
* ' (single quote) in gawk command lines: Long. (line 35) * ' (single quote), in gawk command lines: Long. (line 35)
* ' (single quote), in shell commands: Quoting. (line 48)
* ' (single quote), vs. apostrophe: Comments. (line 27) * ' (single quote), vs. apostrophe: Comments. (line 27)
* ' (single quote), in shell commands: Quoting. (line 48)
* ' (single quote), with double quotes: Quoting. (line 73) * ' (single quote), with double quotes: Quoting. (line 73)
* () (parentheses), in a profile: Profiling. (line 146)
* () (parentheses), regexp operator: Regexp Operator Details. * () (parentheses), regexp operator: Regexp Operator Details.
(line 77) (line 77)
* * (asterisk), * operator, as multiplication operator: Precedence. * () (parentheses), in a profile: Profiling. (line 146)
(line 54)
* * (asterisk), * operator, as regexp operator: Regexp Operator Details. * * (asterisk), * operator, as regexp operator: Regexp Operator Details.
(line 91) (line 91)
* * (asterisk), * operator, null strings, matching: String Functions.
(line 542)
* * (asterisk), ** operator: Arithmetic Ops. (line 81) * * (asterisk), ** operator: Arithmetic Ops. (line 81)
* * (asterisk), ** operator <1>: Precedence. (line 48)
* * (asterisk), **= operator: Assignment Ops. (line 129)
* * (asterisk), **= operator <1>: Precedence. (line 94)
* * (asterisk), *= operator: Assignment Ops. (line 129) * * (asterisk), *= operator: Assignment Ops. (line 129)
* * (asterisk), **= operator: Assignment Ops. (line 129)
* * (asterisk), ** operator <1>: Precedence. (line 48)
* * (asterisk), * operator, as multiplication operator: Precedence.
(line 54)
* * (asterisk), *= operator <1>: Precedence. (line 94) * * (asterisk), *= operator <1>: Precedence. (line 94)
* + (plus sign), + operator: Precedence. (line 51) * * (asterisk), **= operator <1>: Precedence. (line 94)
* + (plus sign), + operator <1>: Precedence. (line 57) * * (asterisk), * operator, null strings, matching: String Functions.
(line 548)
* + (plus sign), regexp operator: Regexp Operator Details.
(line 107)
* + (plus sign), += operator: Assignment Ops. (line 81)
* + (plus sign), ++ operator: Increment Ops. (line 11) * + (plus sign), ++ operator: Increment Ops. (line 11)
* + (plus sign), ++ operator <1>: Increment Ops. (line 40) * + (plus sign), ++ operator <1>: Increment Ops. (line 40)
* + (plus sign), ++ operator <2>: Precedence. (line 45) * + (plus sign), ++ operator <2>: Precedence. (line 45)
* + (plus sign), += operator: Assignment Ops. (line 81) * + (plus sign), + operator: Precedence. (line 51)
* + (plus sign), + operator <1>: Precedence. (line 57)
* + (plus sign), += operator <1>: Precedence. (line 94) * + (plus sign), += operator <1>: Precedence. (line 94)
* + (plus sign), regexp operator: Regexp Operator Details.
(line 107)
* , (comma), in range patterns: Ranges. (line 6) * , (comma), in range patterns: Ranges. (line 6)
* - (hyphen), - operator: Precedence. (line 51) * - (hyphen), file names beginning with: Options. (line 64)
* - (hyphen), - operator <1>: Precedence. (line 57) * - (hyphen), -- end of options marker: Options. (line 343)
* - (hyphen), in bracket expressions: Bracket Expressions. (line 25)
* - (hyphen), -= operator: Assignment Ops. (line 129)
* - (hyphen), -- operator: Increment Ops. (line 48) * - (hyphen), -- operator: Increment Ops. (line 48)
* - (hyphen), -- operator <1>: Precedence. (line 45) * - (hyphen), -- operator <1>: Precedence. (line 45)
* - (hyphen), -= operator: Assignment Ops. (line 129) * - (hyphen), - operator: Precedence. (line 51)
* - (hyphen), - operator <1>: Precedence. (line 57)
* - (hyphen), -= operator <1>: Precedence. (line 94) * - (hyphen), -= operator <1>: Precedence. (line 94)
* - (hyphen), file names beginning with: Options. (line 64)
* - (hyphen), in bracket expressions: Bracket Expressions. (line 25)
* --assign option: Options. (line 36) * --assign option: Options. (line 36)
* --bignum option: Options. (line 230) * --bignum option: Options. (line 237)
* --characters-as-bytes option: Options. (line 73) * --characters-as-bytes option: Options. (line 73)
* --copyright option: Options. (line 93) * --copyright option: Options. (line 93)
* --debug option: Options. (line 112) * --debug option: Options. (line 112)
* --disable-extensions configuration option: Additional Configuration Options. * --disable-extensions configuration option: Additional Configuration Options.
(line 9) (line 9)
* --disable-lint configuration option: Additional Configuration Options. * --disable-lint configuration option: Additional Configuration Options.
(line 19) (line 19)
* --disable-mpfr configuration option: Additional Configuration Options. * --disable-mpfr configuration option: Additional Configuration Options.
(line 36) (line 36)
* --disable-nls configuration option: Additional Configuration Options. * --disable-nls configuration option: Additional Configuration Options.
skipping to change at line 33223 skipping to change at line 33484
* --exec option: Options. (line 147) * --exec option: Options. (line 147)
* --field-separator option: Options. (line 21) * --field-separator option: Options. (line 21)
* --file option: Options. (line 25) * --file option: Options. (line 25)
* --gen-pot option: Options. (line 169) * --gen-pot option: Options. (line 169)
* --gen-pot option <1>: String Extraction. (line 6) * --gen-pot option <1>: String Extraction. (line 6)
* --gen-pot option <2>: String Extraction. (line 6) * --gen-pot option <2>: String Extraction. (line 6)
* --help option: Options. (line 176) * --help option: Options. (line 176)
* --include option: Options. (line 181) * --include option: Options. (line 181)
* --lint option: Command Line. (line 20) * --lint option: Command Line. (line 20)
* --lint option <1>: Options. (line 210) * --lint option <1>: Options. (line 210)
* --lint-old option: Options. (line 326) * --lint-old option: Options. (line 333)
* --load option: Options. (line 198) * --load option: Options. (line 198)
* --no-optimize option: Options. (line 311) * --no-optimize option: Options. (line 318)
* --non-decimal-data option: Options. (line 236) * --non-decimal-data option: Options. (line 243)
* --non-decimal-data option <1>: Nondecimal Data. (line 6) * --non-decimal-data option <1>: Nondecimal Data. (line 6)
* --non-decimal-data option, strtonum() function and: Nondecimal Data. * --non-decimal-data option, strtonum() function and: Nondecimal Data.
(line 35) (line 35)
* --optimize option: Options. (line 261) * --optimize option: Options. (line 268)
* --posix option: Options. (line 283) * --posix option: Options. (line 290)
* --posix option, --traditional option and: Options. (line 298) * --posix option, --traditional option and: Options. (line 305)
* --pretty-print option: Options. (line 250) * --pretty-print option: Options. (line 257)
* --profile option: Options. (line 271) * --profile option: Options. (line 278)
* --profile option <1>: Profiling. (line 12) * --profile option <1>: Profiling. (line 12)
* --re-interval option: Options. (line 304) * --re-interval option: Options. (line 311)
* --sandbox option: Options. (line 316) * --sandbox option: Options. (line 323)
* --sandbox option, disabling system() function: I/O Functions.
(line 128)
* --sandbox option, input redirection with getline: Getline. (line 19) * --sandbox option, input redirection with getline: Getline. (line 19)
* --sandbox option, output redirection with print, printf: Redirection. * --sandbox option, output redirection with print, printf: Redirection.
(line 6) (line 6)
* --sandbox option, disabling system() function: I/O Functions.
(line 128)
* --source option: Options. (line 121) * --source option: Options. (line 121)
* --traditional option: Options. (line 86) * --traditional option: Options. (line 86)
* --traditional option, --posix option and: Options. (line 298) * --traditional option, --posix option and: Options. (line 305)
* --use-lc-numeric option: Options. (line 245) * --use-lc-numeric option: Options. (line 252)
* --version option: Options. (line 331) * --version option: Options. (line 338)
* -b option: Options. (line 73) * -b option: Options. (line 73)
* -c option: Options. (line 86) * -c option: Options. (line 86)
* -C option: Options. (line 93) * -C option: Options. (line 93)
* -d option: Options. (line 98) * -d option: Options. (line 98)
* -D option: Options. (line 112) * -D option: Options. (line 112)
* -e option: Options. (line 121) * -e option: Options. (line 121)
* -E option: Options. (line 147) * -E option: Options. (line 147)
* -e option <1>: Options. (line 367) * -e option <1>: Options. (line 378)
* -f option: Long. (line 12) * -f option: Long. (line 12)
* -F option: Options. (line 21) * -F option: Options. (line 21)
* -f option <1>: Options. (line 25) * -f option <1>: Options. (line 25)
* -F option, -Ft sets FS to TAB: Options. (line 339) * -F option, -Ft sets FS to TAB: Options. (line 350)
* -f option, multiple uses: Options. (line 355)
* -F option, command-line: Command Line Field Separator. * -F option, command-line: Command Line Field Separator.
(line 6) (line 6)
* -f option, multiple uses: Options. (line 344)
* -g option: Options. (line 169) * -g option: Options. (line 169)
* -h option: Options. (line 176) * -h option: Options. (line 176)
* -i option: Options. (line 181) * -i option: Options. (line 181)
* -l option: Options. (line 198) * -l option: Options. (line 198)
* -l option <1>: Options. (line 210) * -l option <1>: Options. (line 210)
* -L option: Options. (line 326) * -L option: Options. (line 333)
* -M option: Options. (line 230) * -M option: Options. (line 237)
* -n option: Options. (line 236) * -n option: Options. (line 243)
* -N option: Options. (line 245) * -N option: Options. (line 252)
* -o option: Options. (line 250) * -o option: Options. (line 257)
* -O option: Options. (line 261) * -O option: Options. (line 268)
* -p option: Options. (line 271) * -p option: Options. (line 278)
* -P option: Options. (line 283) * -P option: Options. (line 290)
* -r option: Options. (line 304) * -r option: Options. (line 311)
* -s option: Options. (line 311) * -s option: Options. (line 318)
* -S option: Options. (line 316) * -S option: Options. (line 323)
* -v option: Options. (line 36) * -v option: Options. (line 36)
* -V option: Options. (line 331) * -V option: Options. (line 338)
* -v option <1>: Assignment Options. (line 12) * -v option <1>: Assignment Options. (line 12)
* -W option: Options. (line 51) * -W option: Options. (line 51)
* . (period), regexp operator: Regexp Operator Details. * . (period), regexp operator: Regexp Operator Details.
(line 40) (line 40)
* .gmo files: Explaining gettext. (line 42) * .gmo files: Explaining gettext. (line 42)
* .gmo files, specifying directory of: Explaining gettext. (line 54) * .gmo files, specifying directory of: Explaining gettext. (line 54)
* .gmo files, specifying directory of <1>: Programmer i18n. (line 48) * .gmo files, specifying directory of <1>: Programmer i18n. (line 48)
* .mo files, converting from .po: I18N Example. (line 80) * .mo files, converting from .po: I18N Example. (line 80)
* .po files: Explaining gettext. (line 37) * .po files: Explaining gettext. (line 37)
* .po files <1>: Translator i18n. (line 6) * .po files <1>: Translator i18n. (line 6)
* .po files, converting to .mo: I18N Example. (line 80) * .po files, converting to .mo: I18N Example. (line 80)
* .pot files: Explaining gettext. (line 31) * .pot files: Explaining gettext. (line 31)
* / (forward slash) to enclose regular expressions: Regexp. (line 10) * / (forward slash), to enclose regular expressions: Regexp. (line 10)
* / (forward slash), / operator: Precedence. (line 54)
* / (forward slash), /= operator: Assignment Ops. (line 129) * / (forward slash), /= operator: Assignment Ops. (line 129)
* / (forward slash), /= operator <1>: Precedence. (line 94) * / (forward slash), /= operator, vs. /=.../ regexp constant: Assignment Ops.
* / (forward slash), /= operator, vs. /=.../ regexp constant: Assignment Ops.
(line 149) (line 149)
* / (forward slash), / operator: Precedence. (line 54)
* / (forward slash), /= operator <1>: Precedence. (line 94)
* / (forward slash), patterns and: Expression Patterns. (line 24) * / (forward slash), patterns and: Expression Patterns. (line 24)
* /= operator vs. /=.../ regexp constant: Assignment Ops. (line 149) * /= operator vs. /=.../ regexp constant: Assignment Ops. (line 149)
* /dev/... special files: Special FD. (line 48)
* /dev/fd/N special files (gawk): Special FD. (line 48) * /dev/fd/N special files (gawk): Special FD. (line 48)
* /dev/... special files: Special FD. (line 48)
* /inet/... special files (gawk): TCP/IP Networking. (line 6) * /inet/... special files (gawk): TCP/IP Networking. (line 6)
* /inet4/... special files (gawk): TCP/IP Networking. (line 6) * /inet4/... special files (gawk): TCP/IP Networking. (line 6)
* /inet6/... special files (gawk): TCP/IP Networking. (line 6) * /inet6/... special files (gawk): TCP/IP Networking. (line 6)
* : (colon), ?: operator: Precedence. (line 91) * : (colon), ?: operator: Precedence. (line 91)
* ::, namespace separator: Qualified Names. (line 6) * : (colon), :: namespace separator: Qualified Names. (line 6)
* ; (semicolon), AWKPATH variable and: PC Using. (line 13)
* ; (semicolon), separating rules: Statements/Lines. (line 90)
* ; (semicolon), separating statements in actions: Statements/Lines. * ; (semicolon), separating statements in actions: Statements/Lines.
(line 90) (line 92)
* ; (semicolon), separating rules: Statements/Lines. (line 92)
* ; (semicolon), separating statements in actions <1>: Action Overview. * ; (semicolon), separating statements in actions <1>: Action Overview.
(line 19) (line 19)
* ; (semicolon), separating statements in actions <2>: Statements. * ; (semicolon), separating statements in actions <2>: Statements.
(line 10) (line 10)
* ; (semicolon), AWKPATH variable and: PC Using. (line 13)
* < (left angle bracket), < operator (I/O): Getline/File. (line 6)
* < (left angle bracket), < operator: Comparison Operators. * < (left angle bracket), < operator: Comparison Operators.
(line 11) (line 11)
* < (left angle bracket), < operator <1>: Precedence. (line 64)
* < (left angle bracket), < operator (I/O): Getline/File. (line 6)
* < (left angle bracket), <= operator: Comparison Operators. * < (left angle bracket), <= operator: Comparison Operators.
(line 11) (line 11)
* < (left angle bracket), < operator <1>: Precedence. (line 64)
* < (left angle bracket), <= operator <1>: Precedence. (line 64) * < (left angle bracket), <= operator <1>: Precedence. (line 64)
* = (equals sign), = operator: Assignment Ops. (line 6) * = (equals sign), = operator: Assignment Ops. (line 6)
* = (equals sign), == operator: Comparison Operators. * = (equals sign), == operator: Comparison Operators.
(line 11) (line 11)
* = (equals sign), == operator <1>: Precedence. (line 64) * = (equals sign), == operator <1>: Precedence. (line 64)
* > (right angle bracket), > operator: Comparison Operators.
(line 11)
* > (right angle bracket), > operator <1>: Precedence. (line 64)
* > (right angle bracket), > operator (I/O): Redirection. (line 22) * > (right angle bracket), > operator (I/O): Redirection. (line 22)
* > (right angle bracket), >> operator (I/O): Redirection. (line 50)
* > (right angle bracket), >= operator: Comparison Operators. * > (right angle bracket), >= operator: Comparison Operators.
(line 11) (line 11)
* > (right angle bracket), > operator: Comparison Operators.
(line 11)
* > (right angle bracket), >= operator <1>: Precedence. (line 64) * > (right angle bracket), >= operator <1>: Precedence. (line 64)
* > (right angle bracket), >> operator (I/O): Redirection. (line 50) * > (right angle bracket), > operator <1>: Precedence. (line 64)
* > (right angle bracket), >> operator (I/O) <1>: Precedence. (line 64) * > (right angle bracket), >> operator (I/O) <1>: Precedence. (line 64)
* ? (question mark), ?: operator: Precedence. (line 91)
* ? (question mark), regexp operator: Regexp Operator Details. * ? (question mark), regexp operator: Regexp Operator Details.
(line 113) (line 113)
* ? (question mark), regexp operator <1>: GNU Regexp Operators. * ? (question mark), regexp operator <1>: GNU Regexp Operators.
(line 62) (line 62)
* @-notation for indirect function calls: Indirect Calls. (line 47) * ? (question mark), ?: operator: Precedence. (line 91)
* @include directive: Include Files. (line 8) * @ (at-sign), @include directive: Include Files. (line 8)
* @load directive: Loading Shared Libraries. * @ (at-sign), @load directive: Loading Shared Libraries.
(line 8) (line 8)
* @namespace directive: Changing The Namespace. * @ (at-sign), @-notation for indirect function calls: Indirect Calls.
(line 47)
* @ (at-sign), @namespace directive: Changing The Namespace.
(line 6) (line 6)
* @namespace, no effect on BEGIN, BEGINFILE, END, and ENDFILE: Changing The Name space. * @ (at-sign), @namespace directive, BEGIN, BEGINFILE, END, ENDFILE and: Changin g The Namespace.
(line 37) (line 37)
* [] (square brackets), regexp operator: Regexp Operator Details. * [] (square brackets), regexp operator: Regexp Operator Details.
(line 52) (line 52)
* \ (backslash): Comments. (line 50) * \ (backslash): Comments. (line 50)
* \ (backslash), as field separator: Command Line Field Separator. * \ (backslash), in shell commands: Quoting. (line 48)
(line 24)
* \ (backslash), continuing lines and: Statements/Lines. (line 19) * \ (backslash), continuing lines and: Statements/Lines. (line 19)
* \ (backslash), continuing lines and, comments and: Statements/Lines.
(line 75)
* \ (backslash), continuing lines and, in csh: Statements/Lines. * \ (backslash), continuing lines and, in csh: Statements/Lines.
(line 43) (line 45)
* \ (backslash), gsub()/gensub()/sub() functions and: Gory Details. * \ (backslash), continuing lines and, comments and: Statements/Lines.
(line 6) (line 77)
* \ (backslash), in bracket expressions: Bracket Expressions. (line 25)
* \ (backslash), in escape sequences: Escape Sequences. (line 6) * \ (backslash), in escape sequences: Escape Sequences. (line 6)
* \ (backslash), in escape sequences <1>: Escape Sequences. (line 103)
* \ (backslash), in escape sequences, POSIX and: Escape Sequences.
(line 108)
* \ (backslash), in regexp constants: Computed Regexps. (line 30)
* \ (backslash), in shell commands: Quoting. (line 48)
* \ (backslash), regexp operator: Regexp Operator Details.
(line 14)
* \ (backslash), \" escape sequence: Escape Sequences. (line 85)
* \ (backslash), \' operator (gawk): GNU Regexp Operators.
(line 59)
* \ (backslash), \/ escape sequence: Escape Sequences. (line 76)
* \ (backslash), \< operator (gawk): GNU Regexp Operators.
(line 33)
* \ (backslash), \> operator (gawk): GNU Regexp Operators.
(line 37)
* \ (backslash), \a escape sequence: Escape Sequences. (line 34) * \ (backslash), \a escape sequence: Escape Sequences. (line 34)
* \ (backslash), \b escape sequence: Escape Sequences. (line 38) * \ (backslash), \b escape sequence: Escape Sequences. (line 38)
* \ (backslash), \B operator (gawk): GNU Regexp Operators.
(line 46)
* \ (backslash), \f escape sequence: Escape Sequences. (line 41) * \ (backslash), \f escape sequence: Escape Sequences. (line 41)
* \ (backslash), \n escape sequence: Escape Sequences. (line 44) * \ (backslash), \n escape sequence: Escape Sequences. (line 44)
* \ (backslash), \NNN escape sequence: Escape Sequences. (line 56)
* \ (backslash), \r escape sequence: Escape Sequences. (line 47) * \ (backslash), \r escape sequence: Escape Sequences. (line 47)
* \ (backslash), \t escape sequence: Escape Sequences. (line 50)
* \ (backslash), \v escape sequence: Escape Sequences. (line 53)
* \ (backslash), \NNN escape sequence: Escape Sequences. (line 56)
* \ (backslash), \x escape sequence: Escape Sequences. (line 61)
* \ (backslash), \/ escape sequence: Escape Sequences. (line 76)
* \ (backslash), \" escape sequence: Escape Sequences. (line 85)
* \ (backslash), in escape sequences <1>: Escape Sequences. (line 103)
* \ (backslash), in escape sequences, POSIX and: Escape Sequences.
(line 108)
* \ (backslash), regexp operator: Regexp Operator Details.
(line 14)
* \ (backslash), in bracket expressions: Bracket Expressions. (line 25)
* \ (backslash), in regexp constants: Computed Regexps. (line 30)
* \ (backslash), \s operator (gawk): GNU Regexp Operators. * \ (backslash), \s operator (gawk): GNU Regexp Operators.
(line 13) (line 13)
* \ (backslash), \S operator (gawk): GNU Regexp Operators. * \ (backslash), \S operator (gawk): GNU Regexp Operators.
(line 17) (line 18)
* \ (backslash), \t escape sequence: Escape Sequences. (line 50)
* \ (backslash), \v escape sequence: Escape Sequences. (line 53)
* \ (backslash), \w operator (gawk): GNU Regexp Operators. * \ (backslash), \w operator (gawk): GNU Regexp Operators.
(line 22) (line 22)
* \ (backslash), \W operator (gawk): GNU Regexp Operators. * \ (backslash), \W operator (gawk): GNU Regexp Operators.
(line 28) (line 28)
* \ (backslash), \x escape sequence: Escape Sequences. (line 61) * \ (backslash), \< operator (gawk): GNU Regexp Operators.
(line 33)
* \ (backslash), \> operator (gawk): GNU Regexp Operators.
(line 37)
* \ (backslash), \y operator (gawk): GNU Regexp Operators. * \ (backslash), \y operator (gawk): GNU Regexp Operators.
(line 41) (line 41)
* \ (backslash), \B operator (gawk): GNU Regexp Operators.
(line 46)
* \ (backslash), \` operator (gawk): GNU Regexp Operators. * \ (backslash), \` operator (gawk): GNU Regexp Operators.
(line 57) (line 57)
* ^ (caret), in bracket expressions: Bracket Expressions. (line 25) * \ (backslash), \' operator (gawk): GNU Regexp Operators.
* ^ (caret), in FS: Regexp Field Splitting.
(line 59) (line 59)
* \ (backslash), as field separator: Command Line Field Separator.
(line 24)
* \ (backslash), gsub()/gensub()/sub() functions and: Gory Details.
(line 6)
* ^ (caret), regexp operator: Regexp Operator Details. * ^ (caret), regexp operator: Regexp Operator Details.
(line 18) (line 18)
* ^ (caret), in bracket expressions: Bracket Expressions. (line 25)
* ^ (caret), regexp operator <1>: GNU Regexp Operators. * ^ (caret), regexp operator <1>: GNU Regexp Operators.
(line 62) (line 62)
* ^ (caret), ^ operator: Precedence. (line 48) * ^ (caret), in FS: Regexp Field Splitting.
(line 59)
* ^ (caret), ^= operator: Assignment Ops. (line 129) * ^ (caret), ^= operator: Assignment Ops. (line 129)
* ^ (caret), ^ operator: Precedence. (line 48)
* ^ (caret), ^= operator <1>: Precedence. (line 94) * ^ (caret), ^= operator <1>: Precedence. (line 94)
* _ (underscore), C macro: Explaining gettext. (line 71)
* _ (underscore), in names of private variables: Library Names. * _ (underscore), in names of private variables: Library Names.
(line 29) (line 29)
* _ (underscore), translatable string: Programmer i18n. (line 69) * _ (underscore), C macro: Explaining gettext. (line 71)
* _ (underscore), translatable strings: Programmer i18n. (line 69)
* _gr_init() user-defined function: Group Functions. (line 83) * _gr_init() user-defined function: Group Functions. (line 83)
* _ord_init() user-defined function: Ordinal Functions. (line 16) * _ord_init() user-defined function: Ordinal Functions. (line 16)
* _pw_init() user-defined function: Passwd Functions. (line 105) * _pw_init() user-defined function: Passwd Functions. (line 105)
* {} (braces): Profiling. (line 142) * {} (braces), regexp operator: Regexp Operator Details.
(line 118)
* {} (braces), actions and: Action Overview. (line 19) * {} (braces), actions and: Action Overview. (line 19)
* {} (braces), statements, grouping: Statements. (line 10) * {} (braces), statements, grouping: Statements. (line 10)
* {} (braces): Profiling. (line 142)
* | (vertical bar): Regexp Operator Details. * | (vertical bar): Regexp Operator Details.
(line 66) (line 66)
* | (vertical bar), | operator (I/O): Getline/Pipe. (line 10) * | (vertical bar), | operator (I/O): Getline/Pipe. (line 10)
* | (vertical bar), | operator (I/O) <1>: Redirection. (line 57)
* | (vertical bar), | operator (I/O) <2>: Precedence. (line 64)
* | (vertical bar), |& operator (I/O): Getline/Coprocess. (line 6) * | (vertical bar), |& operator (I/O): Getline/Coprocess. (line 6)
* | (vertical bar), | operator (I/O) <1>: Redirection. (line 57)
* | (vertical bar), |& operator (I/O) <1>: Redirection. (line 96) * | (vertical bar), |& operator (I/O) <1>: Redirection. (line 96)
* | (vertical bar), |& operator (I/O) <2>: Precedence. (line 64)
* | (vertical bar), |& operator (I/O) <3>: Two-way I/O. (line 27)
* | (vertical bar), |& operator (I/O), pipes, closing: Close Files And Pipes. * | (vertical bar), |& operator (I/O), pipes, closing: Close Files And Pipes.
(line 120) (line 120)
* | (vertical bar), || operator: Boolean Ops. (line 59) * | (vertical bar), || operator: Boolean Ops. (line 59)
* | (vertical bar), | operator (I/O) <2>: Precedence. (line 64)
* | (vertical bar), |& operator (I/O) <2>: Precedence. (line 64)
* | (vertical bar), || operator <1>: Precedence. (line 88) * | (vertical bar), || operator <1>: Precedence. (line 88)
* | (vertical bar), |& operator (I/O) <3>: Two-way I/O. (line 27)
* ~ (tilde), ~ operator: Regexp Usage. (line 19) * ~ (tilde), ~ operator: Regexp Usage. (line 19)
* ~ (tilde), ~ operator <1>: Computed Regexps. (line 6) * ~ (tilde), ~ operator <1>: Computed Regexps. (line 6)
* ~ (tilde), ~ operator <2>: Case-sensitivity. (line 26) * ~ (tilde), ~ operator <2>: Case-sensitivity. (line 26)
* ~ (tilde), ~ operator <3>: Regexp Constants. (line 6) * ~ (tilde), ~ operator <3>: Regexp Constants. (line 6)
* ~ (tilde), ~ operator <4>: Comparison Operators. * ~ (tilde), ~ operator <4>: Comparison Operators.
(line 11) (line 11)
* ~ (tilde), ~ operator <5>: Comparison Operators. * ~ (tilde), ~ operator <5>: Comparison Operators.
(line 98) (line 98)
* ~ (tilde), ~ operator <6>: Precedence. (line 79) * ~ (tilde), ~ operator <6>: Precedence. (line 79)
* ~ (tilde), ~ operator <7>: Expression Patterns. (line 24) * ~ (tilde), ~ operator <7>: Expression Patterns. (line 24)
* aaa (amazing awk assembler) program: Glossary. (line 16)
* accessing fields: Fields. (line 6) * accessing fields: Fields. (line 6)
* accessing global variables from extensions: Symbol Table Access. * accessing global variables from extensions: Symbol Table Access.
(line 6) (line 6)
* account information: Passwd Functions. (line 16) * account information: Passwd Functions. (line 16)
* account information <1>: Group Functions. (line 6) * account information <1>: Group Functions. (line 6)
* actions: Action Overview. (line 6)
* actions, control statements in: Statements. (line 6)
* actions, default: Very Simple. (line 35) * actions, default: Very Simple. (line 35)
* actions, empty: Very Simple. (line 40) * actions, empty: Very Simple. (line 40)
* actions: Action Overview. (line 6)
* actions, control statements in: Statements. (line 6)
* Ada programming language: Glossary. (line 11) * Ada programming language: Glossary. (line 11)
* adding, features to gawk: Adding Code. (line 6)
* adding, fields: Changing Fields. (line 53) * adding, fields: Changing Fields. (line 53)
* adding, features to gawk: Adding Code. (line 6)
* advanced features, fixed-width data: Constant Size. (line 6) * advanced features, fixed-width data: Constant Size. (line 6)
* advanced features, specifying field content: Splitting By Content.
(line 13)
* advanced features, gawk: Advanced Features. (line 6) * advanced features, gawk: Advanced Features. (line 6)
* advanced features, network programming: TCP/IP Networking. (line 6)
* advanced features, nondecimal input data: Nondecimal Data. (line 6) * advanced features, nondecimal input data: Nondecimal Data. (line 6)
* advanced features, processes, communicating with: Two-way I/O. * advanced features, processes, communicating with: Two-way I/O.
(line 6) (line 6)
* advanced features, specifying field content: Splitting By Content. * advanced features, network programming: TCP/IP Networking. (line 6)
(line 9)
* Aho, Alfred: History. (line 17) * Aho, Alfred: History. (line 17)
* Aho, Alfred <1>: Contributors. (line 12) * Aho, Alfred <1>: Contributors. (line 12)
* alarm clock example program: Alarm Program. (line 11) * alarm clock example program: Alarm Program. (line 11)
* alarm.awk program: Alarm Program. (line 31) * alarm.awk program: Alarm Program. (line 31)
* algorithms: Basic High Level. (line 57) * algorithms: Basic High Level. (line 57)
* all source files, show in debugger: Debugger Info. (line 45)
* allocating memory for extensions: Memory Allocation Functions. * allocating memory for extensions: Memory Allocation Functions.
(line 6) (line 6)
* amazing awk assembler (aaa): Glossary. (line 16) * amazing awk assembler (aaa): Glossary. (line 16)
* amazingly workable formatter (awf): Glossary. (line 23) * amazingly workable formatter (awf): Glossary. (line 23)
* ambiguity, syntactic: /= operator vs. /=.../ regexp constant: Assignment Ops. * ambiguity, syntactic: /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 149) (line 149)
* ampersand (&), && operator: Boolean Ops. (line 59) * ampersand (&), && operator: Boolean Ops. (line 59)
* ampersand (&), && operator <1>: Precedence. (line 85) * ampersand (&), && operator <1>: Precedence. (line 85)
* ampersand (&), gsub()/gensub()/sub() functions and: Gory Details. * ampersand (&), gsub()/gensub()/sub() functions and: Gory Details.
(line 6) (line 6)
* anagram.awk program: Anagram Program. (line 21) * anagram.awk program: Anagram Program. (line 21)
* anagrams, finding: Anagram Program. (line 6) * anagrams, finding: Anagram Program. (line 6)
* and: Bitwise Functions. (line 40) * and: Bitwise Functions. (line 40)
* AND bitwise operation: Bitwise Functions. (line 6) * AND bitwise operation: Bitwise Functions. (line 6)
* and Boolean-logic operator: Boolean Ops. (line 6) * and Boolean-logic operator: Boolean Ops. (line 6)
* ANSI: Glossary. (line 32) * ANSI: Glossary. (line 32)
* API informational variables: Extension API Informational Variables. * API, version: Extension Versioning.
(line 6) (line 6)
* API version: Extension Versioning. * API, informational variables: Extension API Informational Variables.
(line 6) (line 6)
* arbitrary precision: Arbitrary Precision Arithmetic. * arbitrary precision: Arbitrary Precision Arithmetic.
(line 6) (line 6)
* arbitrary precision <1>: Computer Arithmetic. (line 61) * arbitrary precision <1>: Computer Arithmetic. (line 61)
* arbitrary precision integers: Arbitrary Precision Integers. * arbitrary precision, integers: Arbitrary Precision Integers.
(line 6) (line 6)
* archaeologists: Bugs. (line 6) * archaeologists: Bugs. (line 6)
* arctangent: Numeric Functions. (line 12) * arctangent: Numeric Functions. (line 12)
* ARGC/ARGV variables: Auto-set. (line 15) * ARGC/ARGV variables, portability and: Executable Scripts. (line 55)
* ARGC/ARGV variables, command-line arguments: Other Arguments. * ARGC/ARGV variables, command-line arguments: Other Arguments.
(line 15) (line 21)
* ARGC/ARGV variables: Auto-set. (line 15)
* ARGC/ARGV variables, how to use: ARGC and ARGV. (line 6) * ARGC/ARGV variables, how to use: ARGC and ARGV. (line 6)
* ARGC/ARGV variables, portability and: Executable Scripts. (line 59) * ARGIND variable, command-line arguments: Other Arguments. (line 21)
* ARGIND variable: Auto-set. (line 44) * ARGIND variable: Auto-set. (line 44)
* ARGIND variable, command-line arguments: Other Arguments. (line 15) * arguments, command-line, invoking awk: Command Line. (line 6)
* arguments, command-line: Other Arguments. (line 6) * arguments, command-line: Other Arguments. (line 6)
* arguments, in function calls: Function Calls. (line 18)
* arguments, command-line <1>: Auto-set. (line 15) * arguments, command-line <1>: Auto-set. (line 15)
* arguments, command-line <2>: ARGC and ARGV. (line 6) * arguments, command-line <2>: ARGC and ARGV. (line 6)
* arguments, command-line, invoking awk: Command Line. (line 6)
* arguments, in function calls: Function Calls. (line 18)
* arguments, processing: Getopt Function. (line 6) * arguments, processing: Getopt Function. (line 6)
* ARGV array: Options. (line 316) * ARGV array: Options. (line 323)
* ARGV array, indexing into: Other Arguments. (line 15) * ARGV array, indexing into: Other Arguments. (line 21)
* arithmetic operators: Arithmetic Ops. (line 6) * arithmetic operators: Arithmetic Ops. (line 6)
* array manipulation in extensions: Array Manipulation. (line 6) * array manipulation in extensions: Array Manipulation. (line 6)
* array members: Reference to Elements. * array members: Reference to Elements.
(line 6) (line 6)
* array scanning order, controlling: Controlling Scanning. * array scanning order, controlling: Controlling Scanning.
(line 14) (line 14)
* array subscripts, null strings as: Uninitialized Subscripts.
(line 43)
* array subscripts, numbers as: Numeric Array Subscripts. * array subscripts, numbers as: Numeric Array Subscripts.
(line 6) (line 6)
* array, number of elements: String Functions. (line 201) * array subscripts, null string as: Uninitialized Subscripts.
(line 43)
* arrays: Arrays. (line 6) * arrays: Arrays. (line 6)
* arrays of arrays: Arrays of Arrays. (line 6) * arrays, indexing: Array Intro. (line 48)
* arrays, an example of using: Array Example. (line 6)
* arrays, as parameters to functions: Pass By Value/Reference.
(line 44)
* arrays, associative: Array Intro. (line 48) * arrays, associative: Array Intro. (line 48)
* arrays, associative, library functions and: Library Names. (line 58) * arrays, sparse: Array Intro. (line 76)
* arrays, deleting entire contents: Delete. (line 39) * arrays, IGNORECASE variable and: Array Intro. (line 100)
* arrays, elements that don't exist: Reference to Elements. * arrays, referencing elements: Reference to Elements.
(line 6)
* arrays, unassigned elements: Reference to Elements.
(line 18)
* arrays, elements, that don't exist: Reference to Elements.
(line 23) (line 23)
* arrays, elements, assigning values: Assigning Elements. (line 6) * arrays, elements, assigning values: Assigning Elements. (line 6)
* arrays, elements, deleting: Delete. (line 6) * arrays, example of using: Array Example. (line 6)
* arrays, scanning: Scanning an Array. (line 6)
* arrays, for statement and: Scanning an Array. (line 20)
* arrays, elements, order of access by in operator: Scanning an Array. * arrays, elements, order of access by in operator: Scanning an Array.
(line 48) (line 48)
* arrays, elements, retrieving number of: String Functions. (line 42)
* arrays, for statement and: Scanning an Array. (line 20)
* arrays, IGNORECASE variable and: Array Intro. (line 100)
* arrays, indexing: Array Intro. (line 48)
* arrays, merging into strings: Join Function. (line 6)
* arrays, multidimensional: Multidimensional. (line 10)
* arrays, multidimensional, scanning: Multiscanning. (line 11)
* arrays, numeric subscripts: Numeric Array Subscripts. * arrays, numeric subscripts: Numeric Array Subscripts.
(line 6) (line 6)
* arrays, referencing elements: Reference to Elements. * arrays, subscripts, uninitialized variables as: Uninitialized Subscripts.
(line 6) (line 6)
* arrays, scanning: Scanning an Array. (line 6) * arrays, elements, deleting: Delete. (line 6)
* arrays, sorting: Array Sorting Functions. * arrays, deleting entire contents: Delete. (line 39)
* arrays, multidimensional: Multidimensional. (line 10)
* arrays, multidimensional, scanning: Multiscanning. (line 11)
* arrays, arrays of arrays: Arrays of Arrays. (line 6)
* arrays, elements, retrieving number of: String Functions. (line 42)
* arrays, number of elements: String Functions. (line 207)
* arrays, as parameters to functions: Pass By Value/Reference.
(line 44)
* arrays, associative, library functions and: Library Names. (line 58)
* arrays, merging into strings: Join Function. (line 6)
* arrays, sorting, asort() function (gawk): Array Sorting Functions.
(line 6)
* arrays, sorting, asorti() function (gawk): Array Sorting Functions.
(line 6) (line 6)
* arrays, sorting, IGNORECASE variable and: Array Sorting Functions. * arrays, sorting, IGNORECASE variable and: Array Sorting Functions.
(line 83) (line 83)
* arrays, sparse: Array Intro. (line 76)
* arrays, subscripts, uninitialized variables as: Uninitialized Subscripts.
(line 6)
* arrays, unassigned elements: Reference to Elements.
(line 18)
* artificial intelligence, gawk and: Distribution contents. * artificial intelligence, gawk and: Distribution contents.
(line 58) (line 58)
* ASCII: Ordinal Functions. (line 45) * ASCII: Escape Sequences. (line 31)
* ASCII <1>: Glossary. (line 194) * ASCII <1>: Bracket Expressions. (line 79)
* ASCII <2>: Scalar Constants. (line 20)
* ASCII <3>: Ordinal Functions. (line 45)
* ASCII <4>: Alarm Program. (line 20)
* ASCII <5>: Two-way I/O. (line 95)
* ASCII <6>: Ranges and Locales. (line 10)
* ASCII <7>: Ranges and Locales. (line 61)
* ASCII <8>: History summary. (line 20)
* ASCII <9>: Glossary. (line 194)
* ASCII <10>: Glossary. (line 320)
* asort: String Functions. (line 42) * asort: String Functions. (line 42)
* asort <1>: Array Sorting Functions. * asort <1>: Array Sorting Functions.
(line 6) (line 6)
* asort() function (gawk), arrays, sorting: Array Sorting Functions. * asort() function (gawk), arrays, sorting: Array Sorting Functions.
(line 6) (line 6)
* asort() function (gawk), side effects: Array Sorting Functions.
(line 6)
* asorti: String Functions. (line 42) * asorti: String Functions. (line 42)
* asorti <1>: Array Sorting Functions. * asorti <1>: Array Sorting Functions.
(line 6) (line 6)
* asorti() function (gawk), arrays, sorting: Array Sorting Functions. * asorti() function (gawk), arrays, sorting: Array Sorting Functions.
(line 6) (line 6)
* asorti() function (gawk), side effects: Array Sorting Functions.
(line 6)
* assert() function (C library): Assert Function. (line 6) * assert() function (C library): Assert Function. (line 6)
* assert() user-defined function: Assert Function. (line 28) * assert() user-defined function: Assert Function. (line 28)
* assertions: Assert Function. (line 6) * assertions: Assert Function. (line 6)
* assign values to variables, in debugger: Viewing And Changing Data. * assign values to variables, in debugger: Viewing And Changing Data.
(line 62) (line 62)
* assignment operators: Assignment Ops. (line 6) * assignment operators: Assignment Ops. (line 6)
* assignment operators, evaluation order: Assignment Ops. (line 110)
* assignment operators, lvalues/rvalues: Assignment Ops. (line 31) * assignment operators, lvalues/rvalues: Assignment Ops. (line 31)
* assignment operators, evaluation order: Assignment Ops. (line 110)
* assignments as file names: Ignoring Assigns. (line 6) * assignments as file names: Ignoring Assigns. (line 6)
* associative arrays: Array Intro. (line 48) * associative arrays: Array Intro. (line 48)
* asterisk (*), * operator, as multiplication operator: Precedence.
(line 54)
* asterisk (*), * operator, as regexp operator: Regexp Operator Details. * asterisk (*), * operator, as regexp operator: Regexp Operator Details.
(line 91) (line 91)
* asterisk (*), * operator, null strings, matching: String Functions.
(line 542)
* asterisk (*), ** operator: Arithmetic Ops. (line 81) * asterisk (*), ** operator: Arithmetic Ops. (line 81)
* asterisk (*), ** operator <1>: Precedence. (line 48)
* asterisk (*), **= operator: Assignment Ops. (line 129)
* asterisk (*), **= operator <1>: Precedence. (line 94)
* asterisk (*), *= operator: Assignment Ops. (line 129) * asterisk (*), *= operator: Assignment Ops. (line 129)
* asterisk (*), **= operator: Assignment Ops. (line 129)
* asterisk (*), ** operator <1>: Precedence. (line 48)
* asterisk (*), * operator, as multiplication operator: Precedence.
(line 54)
* asterisk (*), *= operator <1>: Precedence. (line 94) * asterisk (*), *= operator <1>: Precedence. (line 94)
* asterisk (*), **= operator <1>: Precedence. (line 94)
* asterisk (*), * operator, null strings, matching: String Functions.
(line 548)
* at-sign (@), @include directive: Include Files. (line 8)
* at-sign (@), @load directive: Loading Shared Libraries.
(line 8)
* at-sign (@), @-notation for indirect function calls: Indirect Calls.
(line 47)
* at-sign (@), @namespace directive: Changing The Namespace.
(line 6)
* at-sign (@), @namespace directive, BEGIN, BEGINFILE, END, ENDFILE and: Changin
g The Namespace.
(line 37)
* atan2: Numeric Functions. (line 12) * atan2: Numeric Functions. (line 12)
* automatic displays, in debugger: Debugger Info. (line 24) * automatic displays, in debugger: Debugger Info. (line 24)
* awf (amazingly workable formatter) program: Glossary. (line 23) * awf (amazingly workable formatter) program: Glossary. (line 23)
* awk debugging, enabling: Options. (line 112) * awk: Preface. (line 6)
* awk language, POSIX version: Assignment Ops. (line 138) * awk, POSIX and: Preface. (line 21)
* awk namespace: Default Namespace. (line 6) * awk, POSIX and <1>: Preface. (line 21)
* awk namespace, identifier name storage: Internal Name Management. * awk, gawk and: Preface. (line 21)
* awk, uses for: Preface. (line 21)
* awk, history of: History. (line 17)
* awk, new vs. old: Names. (line 6)
* awk, terms describing: This Manual. (line 6)
* awk, gawk and <1>: This Manual. (line 14)
* awk, function of: Getting Started. (line 6)
* awk, uses for <1>: Getting Started. (line 12)
* awk, uses for <2>: When. (line 6)
* awk, invoking: Command Line. (line 6)
* awk, profiling, enabling: Options. (line 278)
* awk, implementations, limits: Getline Notes. (line 14)
* awk, implementation issues, pipes: Redirection. (line 129)
* awk, new vs. old, OFMT variable: Strings And Numbers. (line 56)
* awk, language, POSIX version: Assignment Ops. (line 138)
* awk, regexp constants and: Comparison Operators.
(line 103)
* awk, language, POSIX version <1>: Next Statement. (line 44)
* awk, language, POSIX version <2>: Definition Syntax. (line 99)
* awk, namespace: Default Namespace. (line 6)
* awk, namespace, identifier name storage: Internal Name Management.
(line 6) (line 6)
* awk namespace, use for indirect function calls: Internal Name Management. * awk, namespace, use for indirect function calls: Internal Name Management.
(line 6)
* awk, versions of: V7/SVR3.1. (line 6)
* awk, versions of, changes between V7 and SVR3.1: V7/SVR3.1. (line 6)
* awk, versions of, changes between SVR3.1 and SVR4: SVR4. (line 6)
* awk, versions of, changes between SVR4 and POSIX awk: POSIX.
(line 6) (line 6)
* awk profiling, enabling: Options. (line 271) * awk, versions of <1>: BTL. (line 6)
* awk, implementations: Other Versions. (line 6)
* awk, versions of <2>: Other Versions. (line 13)
* awk programs: Getting Started. (line 12) * awk programs: Getting Started. (line 12)
* awk programs, running: Running gawk. (line 6)
* awk programs, running, from shell scripts: One-shot. (line 22)
* awk programs, running, without input files: Read Terminal. (line 16)
* awk programs, running <1>: Long. (line 6)
* awk programs, lengthy: Long. (line 6)
* awk programs <1>: Executable Scripts. (line 6) * awk programs <1>: Executable Scripts. (line 6)
* awk programs, documenting: Comments. (line 6)
* awk programs, one-line examples: Very Simple. (line 46)
* awk programs <2>: Two Rules. (line 6) * awk programs <2>: Two Rules. (line 6)
* awk programs, complex: When. (line 27) * awk programs, complex: When. (line 27)
* awk programs, documenting: Comments. (line 6)
* awk programs, documenting <1>: Library Names. (line 6)
* awk programs, examples of: Sample Programs. (line 6)
* awk programs, execution of: Next Statement. (line 16)
* awk programs, internationalizing: I18N Functions. (line 6)
* awk programs, internationalizing <1>: Programmer i18n. (line 6)
* awk programs, lengthy: Long. (line 6)
* awk programs, lengthy, assertions: Assert Function. (line 6)
* awk programs, location of: Options. (line 25) * awk programs, location of: Options. (line 25)
* awk programs, debugging, enabling: Options. (line 112)
* awk programs, location of <1>: Options. (line 147) * awk programs, location of <1>: Options. (line 147)
* awk programs, location of <2>: Options. (line 181) * awk programs, location of <2>: Options. (line 181)
* awk programs, one-line examples: Very Simple. (line 46)
* awk programs, profiling: Profiling. (line 6)
* awk programs, running: Running gawk. (line 6)
* awk programs, running <1>: Long. (line 6)
* awk programs, running, from shell scripts: One-shot. (line 22)
* awk programs, running, without input files: Read Terminal. (line 16)
* awk programs, shell variables in: Using Shell Variables. * awk programs, shell variables in: Using Shell Variables.
(line 6) (line 6)
* awk, function of: Getting Started. (line 6) * awk programs, execution of: Next Statement. (line 16)
* awk, gawk and: Preface. (line 21) * awk programs, internationalizing: I18N Functions. (line 6)
* awk, gawk and <1>: This Manual. (line 14) * awk programs, documenting <1>: Library Names. (line 6)
* awk, history of: History. (line 17) * awk programs, lengthy, assertions: Assert Function. (line 6)
* awk, implementation issues, pipes: Redirection. (line 129) * awk programs, examples of: Sample Programs. (line 6)
* awk, implementations: Other Versions. (line 6) * awk programs, profiling: Profiling. (line 6)
* awk, implementations, limits: Getline Notes. (line 14) * awk programs, internationalizing <1>: Programmer i18n. (line 6)
* awk, invoking: Command Line. (line 6)
* awk, new vs. old: Names. (line 6)
* awk, new vs. old, OFMT variable: Strings And Numbers. (line 56)
* awk, POSIX and: Preface. (line 21)
* awk, POSIX and, See Also POSIX awk: Preface. (line 21)
* awk, regexp constants and: Comparison Operators.
(line 103)
* awk, See Also gawk: Preface. (line 34)
* awk, terms describing: This Manual. (line 6)
* awk, uses for: Preface. (line 21)
* awk, uses for <1>: Getting Started. (line 12)
* awk, uses for <2>: When. (line 6)
* awk, versions of: V7/SVR3.1. (line 6)
* awk, versions of, changes between SVR3.1 and SVR4: SVR4. (line 6)
* awk, versions of, changes between SVR4 and POSIX awk: POSIX.
(line 6)
* awk, versions of, changes between V7 and SVR3.1: V7/SVR3.1. (line 6)
* awk, versions of, See Also Brian Kernighan's awk: BTL. (line 6)
* awk, versions of, See Also Brian Kernighan's awk <1>: Other Versions.
(line 13)
* awka compiler for awk: Other Versions. (line 64) * awka compiler for awk: Other Versions. (line 64)
* awk <1>: Preface. (line 34)
* AWKLIBPATH environment variable: AWKLIBPATH Variable. (line 6) * AWKLIBPATH environment variable: AWKLIBPATH Variable. (line 6)
* AWKPATH environment variable: AWKPATH Variable. (line 6) * AWKPATH environment variable: AWKPATH Variable. (line 6)
* AWKPATH environment variable <1>: PC Using. (line 13) * AWKPATH environment variable <1>: PC Using. (line 13)
* awkprof.out file: Profiling. (line 6) * awkprof.out file: Profiling. (line 6)
* awksed.awk program: Simple Sed. (line 25) * awksed.awk program: Simple Sed. (line 25)
* awkvars.out file: Options. (line 98) * awkvars.out file: Options. (line 98)
* b debugger command (alias for break): Breakpoint Control. (line 11) * b debugger command (alias for break): Breakpoint Control. (line 11)
* backslash (\): Comments. (line 50) * backslash (\): Comments. (line 50)
* backslash (\), as field separator: Command Line Field Separator. * backslash (\), in shell commands: Quoting. (line 48)
(line 24)
* backslash (\), continuing lines and: Statements/Lines. (line 19) * backslash (\), continuing lines and: Statements/Lines. (line 19)
* backslash (\), continuing lines and, comments and: Statements/Lines.
(line 75)
* backslash (\), continuing lines and, in csh: Statements/Lines. * backslash (\), continuing lines and, in csh: Statements/Lines.
(line 43) (line 45)
* backslash (\), gsub()/gensub()/sub() functions and: Gory Details. * backslash (\), continuing lines and, comments and: Statements/Lines.
(line 6) (line 77)
* backslash (\), in bracket expressions: Bracket Expressions. (line 25)
* backslash (\), in escape sequences: Escape Sequences. (line 6) * backslash (\), in escape sequences: Escape Sequences. (line 6)
* backslash (\), in escape sequences <1>: Escape Sequences. (line 103)
* backslash (\), in escape sequences, POSIX and: Escape Sequences.
(line 108)
* backslash (\), in regexp constants: Computed Regexps. (line 30)
* backslash (\), in shell commands: Quoting. (line 48)
* backslash (\), regexp operator: Regexp Operator Details.
(line 14)
* backslash (\), \" escape sequence: Escape Sequences. (line 85)
* backslash (\), \' operator (gawk): GNU Regexp Operators.
(line 59)
* backslash (\), \/ escape sequence: Escape Sequences. (line 76)
* backslash (\), \< operator (gawk): GNU Regexp Operators.
(line 33)
* backslash (\), \> operator (gawk): GNU Regexp Operators.
(line 37)
* backslash (\), \a escape sequence: Escape Sequences. (line 34) * backslash (\), \a escape sequence: Escape Sequences. (line 34)
* backslash (\), \b escape sequence: Escape Sequences. (line 38) * backslash (\), \b escape sequence: Escape Sequences. (line 38)
* backslash (\), \B operator (gawk): GNU Regexp Operators.
(line 46)
* backslash (\), \f escape sequence: Escape Sequences. (line 41) * backslash (\), \f escape sequence: Escape Sequences. (line 41)
* backslash (\), \n escape sequence: Escape Sequences. (line 44) * backslash (\), \n escape sequence: Escape Sequences. (line 44)
* backslash (\), \NNN escape sequence: Escape Sequences. (line 56)
* backslash (\), \r escape sequence: Escape Sequences. (line 47) * backslash (\), \r escape sequence: Escape Sequences. (line 47)
* backslash (\), \t escape sequence: Escape Sequences. (line 50)
* backslash (\), \v escape sequence: Escape Sequences. (line 53)
* backslash (\), \NNN escape sequence: Escape Sequences. (line 56)
* backslash (\), \x escape sequence: Escape Sequences. (line 61)
* backslash (\), \/ escape sequence: Escape Sequences. (line 76)
* backslash (\), \" escape sequence: Escape Sequences. (line 85)
* backslash (\), in escape sequences <1>: Escape Sequences. (line 103)
* backslash (\), in escape sequences, POSIX and: Escape Sequences.
(line 108)
* backslash (\), regexp operator: Regexp Operator Details.
(line 14)
* backslash (\), in bracket expressions: Bracket Expressions. (line 25)
* backslash (\), in regexp constants: Computed Regexps. (line 30)
* backslash (\), \s operator (gawk): GNU Regexp Operators. * backslash (\), \s operator (gawk): GNU Regexp Operators.
(line 13) (line 13)
* backslash (\), \S operator (gawk): GNU Regexp Operators. * backslash (\), \S operator (gawk): GNU Regexp Operators.
(line 17) (line 18)
* backslash (\), \t escape sequence: Escape Sequences. (line 50)
* backslash (\), \v escape sequence: Escape Sequences. (line 53)
* backslash (\), \w operator (gawk): GNU Regexp Operators. * backslash (\), \w operator (gawk): GNU Regexp Operators.
(line 22) (line 22)
* backslash (\), \W operator (gawk): GNU Regexp Operators. * backslash (\), \W operator (gawk): GNU Regexp Operators.
(line 28) (line 28)
* backslash (\), \x escape sequence: Escape Sequences. (line 61) * backslash (\), \< operator (gawk): GNU Regexp Operators.
(line 33)
* backslash (\), \> operator (gawk): GNU Regexp Operators.
(line 37)
* backslash (\), \y operator (gawk): GNU Regexp Operators. * backslash (\), \y operator (gawk): GNU Regexp Operators.
(line 41) (line 41)
* backslash (\), \B operator (gawk): GNU Regexp Operators.
(line 46)
* backslash (\), \` operator (gawk): GNU Regexp Operators. * backslash (\), \` operator (gawk): GNU Regexp Operators.
(line 57) (line 57)
* backslash (\), \' operator (gawk): GNU Regexp Operators.
(line 59)
* backslash (\), as field separator: Command Line Field Separator.
(line 24)
* backslash (\), gsub()/gensub()/sub() functions and: Gory Details.
(line 6)
* backtrace debugger command: Execution Stack. (line 13) * backtrace debugger command: Execution Stack. (line 13)
* Beebe, Nelson H.F.: Acknowledgments. (line 60) * Beebe, Nelson H.F.: Acknowledgments. (line 60)
* Beebe, Nelson H.F. <1>: Numeric Functions. (line 33) * Beebe, Nelson H.F. <1>: Numeric Functions. (line 33)
* Beebe, Nelson H.F. <2>: Other Versions. (line 78) * Beebe, Nelson H.F. <2>: Other Versions. (line 78)
* BEGIN pattern: Field Separators. (line 44) * BEGIN pattern: Field Separators. (line 44)
* BEGIN pattern <1>: BEGIN/END. (line 6)
* BEGIN pattern <2>: Using BEGIN/END. (line 6)
* BEGIN pattern, assert() user-defined function and: Assert Function.
(line 83)
* BEGIN pattern, Boolean patterns and: Expression Patterns. (line 70)
* BEGIN pattern, execution order not affected by @namespace: Changing The Namesp
ace.
(line 37)
* BEGIN pattern, exit statement and: Exit Statement. (line 12)
* BEGIN pattern, getline and: Getline Notes. (line 19) * BEGIN pattern, getline and: Getline Notes. (line 19)
* BEGIN pattern, headings, adding: Print Examples. (line 42) * BEGIN pattern, headings, adding: Print Examples. (line 42)
* BEGIN pattern, next/nextfile statements and: I/O And BEGIN/END.
(line 36)
* BEGIN pattern, next/nextfile statements and <1>: Next Statement.
(line 44)
* BEGIN pattern, OFS/ORS variables, assigning values to: Output Separators. * BEGIN pattern, OFS/ORS variables, assigning values to: Output Separators.
(line 20) (line 20)
* BEGIN pattern, Boolean patterns and: Expression Patterns. (line 70)
* BEGIN pattern <1>: BEGIN/END. (line 6)
* BEGIN pattern <2>: Using BEGIN/END. (line 6)
* BEGIN pattern, operators and: Using BEGIN/END. (line 17) * BEGIN pattern, operators and: Using BEGIN/END. (line 17)
* BEGIN pattern, print statement and: I/O And BEGIN/END. (line 15) * BEGIN pattern, print statement and: I/O And BEGIN/END. (line 15)
* BEGIN pattern, profiling and: Profiling. (line 62) * BEGIN pattern, next/nextfile statements and: I/O And BEGIN/END.
(line 36)
* BEGIN pattern, next/nextfile statements and <1>: Next Statement.
(line 44)
* BEGIN pattern, exit statement and: Exit Statement. (line 12)
* BEGIN pattern, assert() user-defined function and: Assert Function.
(line 83)
* BEGIN pattern, pwcat program: Passwd Functions. (line 143) * BEGIN pattern, pwcat program: Passwd Functions. (line 143)
* BEGIN pattern, running awk programs and: Cut Program. (line 63) * BEGIN pattern, running awk programs and: Cut Program. (line 63)
* BEGIN pattern, profiling and: Profiling. (line 62)
* BEGIN pattern, TEXTDOMAIN variable and: Programmer i18n. (line 60) * BEGIN pattern, TEXTDOMAIN variable and: Programmer i18n. (line 60)
* BEGINFILE pattern: BEGINFILE/ENDFILE. (line 6) * BEGIN pattern, @namespace directive and: Changing The Namespace.
(line 37)
* BEGINFILE pattern, Boolean patterns and: Expression Patterns. * BEGINFILE pattern, Boolean patterns and: Expression Patterns.
(line 70) (line 70)
* BEGINFILE pattern, execution order not affected by @namespace: Changing The Na * BEGINFILE pattern: BEGINFILE/ENDFILE. (line 6)
mespace. * BEGINFILE pattern, @namespace directive and: Changing The Namespace.
(line 37) (line 37)
* beginfile() user-defined function: Filetrans Function. (line 62) * beginfile() user-defined function: Filetrans Function. (line 62)
* Bentley, Jon: Glossary. (line 204) * Bentley, Jon: Glossary. (line 204)
* Benzinger, Michael: Contributors. (line 100) * Benzinger, Michael: Contributors. (line 100)
* Berry, Karl: Acknowledgments. (line 33) * Berry, Karl: Acknowledgments. (line 33)
* Berry, Karl <1>: Acknowledgments. (line 75) * Berry, Karl <1>: Acknowledgments. (line 75)
* Berry, Karl <2>: Ranges and Locales. (line 74) * Berry, Karl <2>: Ranges and Locales. (line 74)
* binary input/output: User-modified. (line 15) * binary input/output: User-modified. (line 15)
* bindtextdomain: I18N Functions. (line 11) * bindtextdomain: I18N Functions. (line 11)
* bindtextdomain <1>: Programmer i18n. (line 48) * bindtextdomain <1>: Programmer i18n. (line 48)
* bindtextdomain() function (C library): Explaining gettext. (line 50) * bindtextdomain() function (C library): Explaining gettext. (line 50)
* bindtextdomain() function (gawk), portability and: I18N Portability. * bindtextdomain() function (gawk), portability and: I18N Portability.
(line 33) (line 33)
* BINMODE variable: User-modified. (line 15) * BINMODE variable: User-modified. (line 15)
* BINMODE variable <1>: PC Using. (line 20) * BINMODE variable <1>: PC Using. (line 20)
* bit-manipulation functions: Bitwise Functions. (line 6) * bit-manipulation functions: Bitwise Functions. (line 6)
* bits2str() user-defined function: Bitwise Functions. (line 69) * bits2str() user-defined function: Bitwise Functions. (line 69)
* bitwise AND: Bitwise Functions. (line 40)
* bitwise complement: Bitwise Functions. (line 25)
* bitwise complement <1>: Bitwise Functions. (line 44)
* bitwise OR: Bitwise Functions. (line 50)
* bitwise XOR: Bitwise Functions. (line 57)
* bitwise, operations: Bitwise Functions. (line 6) * bitwise, operations: Bitwise Functions. (line 6)
* bitwise, complement: Bitwise Functions. (line 25)
* bitwise, shift: Bitwise Functions. (line 32) * bitwise, shift: Bitwise Functions. (line 32)
* bitwise, AND: Bitwise Functions. (line 40)
* bitwise, complement <1>: Bitwise Functions. (line 44)
* bitwise, OR: Bitwise Functions. (line 50)
* bitwise, XOR: Bitwise Functions. (line 57)
* body, in actions: Statements. (line 10) * body, in actions: Statements. (line 10)
* body, in loops: While Statement. (line 14) * body, in loops: While Statement. (line 14)
* Boolean expressions: Boolean Ops. (line 6) * Boolean expressions: Boolean Ops. (line 6)
* Boolean expressions, as patterns: Expression Patterns. (line 39) * Boolean expressions, as patterns: Expression Patterns. (line 39)
* Boolean operators, See Boolean expressions: Boolean Ops. (line 6)
* Bourne shell, quoting rules for: Quoting. (line 18) * Bourne shell, quoting rules for: Quoting. (line 18)
* braces ({}): Profiling. (line 142) * braces ({}), regexp operator: Regexp Operator Details.
(line 118)
* braces ({}), actions and: Action Overview. (line 19) * braces ({}), actions and: Action Overview. (line 19)
* braces ({}), statements, grouping: Statements. (line 10) * braces ({}), statements, grouping: Statements. (line 10)
* braces ({}): Profiling. (line 142)
* bracket expressions: Regexp Operator Details. * bracket expressions: Regexp Operator Details.
(line 52) (line 52)
* bracket expressions, complemented: Regexp Operator Details.
(line 60)
* bracket expressions <1>: Bracket Expressions. (line 6) * bracket expressions <1>: Bracket Expressions. (line 6)
* bracket expressions, range expressions: Bracket Expressions.
(line 6)
* bracket expressions, character lists: Bracket Expressions. (line 6)
* bracket expressions, character classes: Bracket Expressions. * bracket expressions, character classes: Bracket Expressions.
(line 40) (line 40)
* bracket expressions, collating elements: Bracket Expressions. * bracket expressions, collating elements: Bracket Expressions.
(line 90) (line 90)
* bracket expressions, non-ASCII: Bracket Expressions. (line 90)
* bracket expressions, collating symbols: Bracket Expressions. * bracket expressions, collating symbols: Bracket Expressions.
(line 97) (line 97)
* bracket expressions, complemented: Regexp Operator Details.
(line 60)
* bracket expressions, equivalence classes: Bracket Expressions. * bracket expressions, equivalence classes: Bracket Expressions.
(line 103) (line 103)
* bracket expressions, non-ASCII: Bracket Expressions. (line 90)
* bracket expressions, range expressions: Bracket Expressions.
(line 6)
* break debugger command: Breakpoint Control. (line 11) * break debugger command: Breakpoint Control. (line 11)
* break statement: Break Statement. (line 6) * break statement: Break Statement. (line 6)
* breakpoint (debugger): Debugging Terms. (line 33) * breakpoint: Debugging Terms. (line 33)
* breakpoint at location, how to delete: Breakpoint Control. (line 36) * breakpoint, setting: Breakpoint Control. (line 11)
* breakpoint commands: Debugger Execution Control. * breakpoint, at location, how to delete: Breakpoint Control. (line 36)
(line 10) * breakpoint, condition: Breakpoint Control. (line 54)
* breakpoint condition: Breakpoint Control. (line 54)
* breakpoint, delete by number: Breakpoint Control. (line 64) * breakpoint, delete by number: Breakpoint Control. (line 64)
* breakpoint, how to disable or enable: Breakpoint Control. (line 69) * breakpoint, how to disable or enable: Breakpoint Control. (line 69)
* breakpoint, setting: Breakpoint Control. (line 11) * breakpoint, commands to execute at: Debugger Execution Control.
(line 10)
* breakpoint, show all in debugger: Debugger Info. (line 21)
* Brennan, Michael: Foreword3. (line 84) * Brennan, Michael: Foreword3. (line 84)
* Brennan, Michael <1>: Foreword4. (line 33) * Brennan, Michael <1>: Foreword4. (line 33)
* Brennan, Michael <2>: Acknowledgments. (line 79) * Brennan, Michael <2>: Acknowledgments. (line 79)
* Brennan, Michael <3>: Delete. (line 56) * Brennan, Michael <3>: Delete. (line 56)
* Brennan, Michael <4>: Simple Sed. (line 25) * Brennan, Michael <4>: Simple Sed. (line 25)
* Brennan, Michael <5>: Other Versions. (line 6) * Brennan, Michael <5>: Other Versions. (line 6)
* Brennan, Michael <6>: Other Versions. (line 39) * Brennan, Michael <6>: Other Versions. (line 39)
* Brian Kernighan's awk: When. (line 21) * Brian Kernighan's awk: When. (line 21)
* Brian Kernighan's awk <1>: Escape Sequences. (line 112) * Brian Kernighan's awk <1>: Escape Sequences. (line 112)
* Brian Kernighan's awk <2>: GNU Regexp Operators. * Brian Kernighan's awk <2>: GNU Regexp Operators.
(line 85) (line 85)
* Brian Kernighan's awk <3>: Regexp Field Splitting. * Brian Kernighan's awk <3>: gawk split records. (line 63)
* Brian Kernighan's awk <4>: Regexp Field Splitting.
(line 67) (line 67)
* Brian Kernighan's awk <4>: Getline/Pipe. (line 62) * Brian Kernighan's awk <5>: Getline/Pipe. (line 62)
* Brian Kernighan's awk <5>: Concatenation. (line 36) * Brian Kernighan's awk <6>: Concatenation. (line 36)
* Brian Kernighan's awk <6>: I/O And BEGIN/END. (line 15) * Brian Kernighan's awk <7>: I/O And BEGIN/END. (line 15)
* Brian Kernighan's awk <7>: Break Statement. (line 51) * Brian Kernighan's awk <8>: Break Statement. (line 51)
* Brian Kernighan's awk <8>: Continue Statement. (line 44) * Brian Kernighan's awk <9>: Continue Statement. (line 44)
* Brian Kernighan's awk <9>: Nextfile Statement. (line 47) * Brian Kernighan's awk <10>: Nextfile Statement. (line 47)
* Brian Kernighan's awk <10>: Delete. (line 51) * Brian Kernighan's awk <11>: Delete. (line 51)
* Brian Kernighan's awk <11>: String Functions. (line 498) * Brian Kernighan's awk <12>: String Functions. (line 504)
* Brian Kernighan's awk <12>: Gory Details. (line 19) * Brian Kernighan's awk <13>: Gory Details. (line 19)
* Brian Kernighan's awk <13>: I/O Functions. (line 43) * Brian Kernighan's awk <14>: I/O Functions. (line 43)
* Brian Kernighan's awk, extensions: BTL. (line 6) * Brian Kernighan's awk, extensions: BTL. (line 6)
* Brian Kernighan's awk, source code: Other Versions. (line 13) * Brian Kernighan's awk, source code: Other Versions. (line 13)
* Brini, Davide: Signature Program. (line 6) * Brini, Davide: Signature Program. (line 6)
* Brink, Jeroen: DOS Quoting. (line 10) * Brink, Jeroen: DOS Quoting. (line 10)
* Broder, Alan J.: Contributors. (line 91) * Broder, Alan J.: Contributors. (line 91)
* Brown, Martin: Contributors. (line 85) * Brown, Martin: Contributors. (line 85)
* BSD-based operating systems: Glossary. (line 746) * BSD-based operating systems: Glossary. (line 747)
* bt debugger command (alias for backtrace): Execution Stack. (line 13) * bt debugger command (alias for backtrace): Execution Stack. (line 13)
* Buening, Andreas: Acknowledgments. (line 60) * Buening, Andreas: Acknowledgments. (line 60)
* Buening, Andreas <1>: Contributors. (line 95) * Buening, Andreas <1>: Contributors. (line 95)
* Buening, Andreas <2>: Maintainers. (line 14) * Buening, Andreas <2>: Maintainers. (line 14)
* buffering, interactive vs. noninteractive: I/O Functions. (line 76)
* buffering, input/output: I/O Functions. (line 168) * buffering, input/output: I/O Functions. (line 168)
* buffering, input/output <1>: Two-way I/O. (line 53) * buffering, input/output <1>: Two-way I/O. (line 53)
* buffering, interactive vs. noninteractive: I/O Functions. (line 76)
* buffers, flushing: I/O Functions. (line 32)
* buffers, flushing <1>: I/O Functions. (line 168)
* buffers, operators for: GNU Regexp Operators. * buffers, operators for: GNU Regexp Operators.
(line 51) (line 51)
* buffers, flushing: I/O Functions. (line 32)
* buffers, flushing <1>: I/O Functions. (line 168)
* bug reports, email address, bug-gawk@gnu.org: Bug address. (line 31) * bug reports, email address, bug-gawk@gnu.org: Bug address. (line 31)
* bug-gawk@gnu.org bug reporting address: Bug address. (line 31) * bug-gawk@gnu.org bug reporting address: Bug address. (line 31)
* built-in functions: Functions. (line 6) * built-in functions: Functions. (line 6)
* built-in functions, evaluation order: Calling Built-in. (line 30) * built-in functions, evaluation order: Calling Built-in. (line 30)
* BusyBox Awk: Other Versions. (line 88) * BusyBox Awk: Other Versions. (line 88)
* c.e., See common extensions: Conventions. (line 51) * C library functions, assert(): Assert Function. (line 6)
* C library functions, getopt(): Getopt Function. (line 15)
* C library functions, getpwent(): Passwd Functions. (line 16)
* C library functions, getpwnam(): Passwd Functions. (line 175)
* C library functions, getpwuid(): Passwd Functions. (line 186)
* C library functions, getpwent() <1>: Passwd Functions. (line 196)
* C library functions, endpwent(): Passwd Functions. (line 208)
* C library functions, getgrent(): Group Functions. (line 6)
* C library functions, getgrnam(): Group Functions. (line 173)
* C library functions, getgrgid(): Group Functions. (line 184)
* C library functions, getgruser(): Group Functions. (line 193)
* C library functions, getgrent() <1>: Group Functions. (line 202)
* C library functions, endgrent(): Group Functions. (line 213)
* C library functions, getaddrinfo(): TCP/IP Networking. (line 39)
* C library functions, textdomain(): Explaining gettext. (line 28)
* C library functions, bindtextdomain(): Explaining gettext. (line 50)
* C library functions, gettext(): Explaining gettext. (line 63)
* call by reference: Pass By Value/Reference. * call by reference: Pass By Value/Reference.
(line 44) (line 44)
* call by value: Pass By Value/Reference. * call by value: Pass By Value/Reference.
(line 15) (line 15)
* call stack (debugger): Debugging Terms. (line 10) * call stack, explanation of: Debugging Terms. (line 10)
* call stack, display in debugger: Execution Stack. (line 13) * call stack, display in debugger: Execution Stack. (line 13)
* caret (^), in bracket expressions: Bracket Expressions. (line 25)
* caret (^), regexp operator: Regexp Operator Details. * caret (^), regexp operator: Regexp Operator Details.
(line 18) (line 18)
* caret (^), in bracket expressions: Bracket Expressions. (line 25)
* caret (^), regexp operator <1>: GNU Regexp Operators. * caret (^), regexp operator <1>: GNU Regexp Operators.
(line 62) (line 62)
* caret (^), ^ operator: Precedence. (line 48)
* caret (^), ^= operator: Assignment Ops. (line 129) * caret (^), ^= operator: Assignment Ops. (line 129)
* caret (^), ^ operator: Precedence. (line 48)
* caret (^), ^= operator <1>: Precedence. (line 94) * caret (^), ^= operator <1>: Precedence. (line 94)
* case keyword: Switch Statement. (line 6) * case keyword: Switch Statement. (line 6)
* case sensitivity, array indices and: Array Intro. (line 100)
* case sensitivity, converting case: String Functions. (line 528)
* case sensitivity, example programs: Library Functions. (line 53)
* case sensitivity, gawk: Case-sensitivity. (line 26)
* case sensitivity, regexps and: Case-sensitivity. (line 6) * case sensitivity, regexps and: Case-sensitivity. (line 6)
* case sensitivity, regexps and <1>: User-modified. (line 79) * case sensitivity, gawk: Case-sensitivity. (line 26)
* case sensitivity, string comparisons and: User-modified. (line 79) * case sensitivity, string comparisons and: User-modified. (line 79)
* case sensitivity, regexps and <1>: User-modified. (line 79)
* case sensitivity, array indices and: Array Intro. (line 100)
* case sensitivity, converting case: String Functions. (line 534)
* case sensitivity, example programs: Library Functions. (line 53)
* CGI, awk scripts for: Options. (line 147) * CGI, awk scripts for: Options. (line 147)
* character classes, See bracket expressions: Regexp Operator Details.
(line 52)
* character lists in regular expressions: Bracket Expressions.
(line 6)
* character lists, See bracket expressions: Regexp Operator Details.
(line 52)
* character sets (machine character encodings): Ordinal Functions. * character sets (machine character encodings): Ordinal Functions.
(line 45) (line 45)
* character sets (machine character encodings) <1>: Glossary. (line 194) * character sets (machine character encodings) <1>: Glossary. (line 194)
* character sets, See Also bracket expressions: Regexp Operator Details. * characters, values of as numbers: Ordinal Functions. (line 6)
(line 52)
* characters, counting: Wc Program. (line 6) * characters, counting: Wc Program. (line 6)
* characters, transliterating: Translate Program. (line 6) * characters, transliterating: Translate Program. (line 6)
* characters, values of as numbers: Ordinal Functions. (line 6)
* Chassell, Robert J.: Acknowledgments. (line 33) * Chassell, Robert J.: Acknowledgments. (line 33)
* chdir() extension function: Extension Sample File Functions. * chdir() extension function: Extension Sample File Functions.
(line 12) (line 12)
* checking for MPFR: Checking for MPFR. (line 6) * checking for MPFR: Checking for MPFR. (line 6)
* chem utility: Glossary. (line 204) * chem utility: Glossary. (line 204)
* chr() extension function: Extension Sample Ord. * chr() extension function: Extension Sample Ord.
(line 15) (line 15)
* chr() user-defined function: Ordinal Functions. (line 16) * chr() user-defined function: Ordinal Functions. (line 16)
* clear debugger command: Breakpoint Control. (line 36) * clear debugger command: Breakpoint Control. (line 36)
* Cliff random numbers: Cliff Random Function. * Cliff random numbers: Cliff Random Function.
skipping to change at line 33911 skipping to change at line 34215
* close <1>: I/O Functions. (line 10) * close <1>: I/O Functions. (line 10)
* close file or coprocess: I/O Functions. (line 10) * close file or coprocess: I/O Functions. (line 10)
* close() function, portability: Close Files And Pipes. * close() function, portability: Close Files And Pipes.
(line 81) (line 81)
* close() function, return value: Close Files And Pipes. * close() function, return value: Close Files And Pipes.
(line 132) (line 132)
* close() function, two-way pipes and: Two-way I/O. (line 60) * close() function, two-way pipes and: Two-way I/O. (line 60)
* Close, Diane: Manual History. (line 34) * Close, Diane: Manual History. (line 34)
* Close, Diane <1>: Contributors. (line 21) * Close, Diane <1>: Contributors. (line 21)
* Collado, Manuel: Acknowledgments. (line 60) * Collado, Manuel: Acknowledgments. (line 60)
* Collado, Manuel <1>: More CSV. (line 6)
* collating elements: Bracket Expressions. (line 90) * collating elements: Bracket Expressions. (line 90)
* collating symbols: Bracket Expressions. (line 97) * collating symbols: Bracket Expressions. (line 97)
* Colombo, Antonio: Acknowledgments. (line 60) * Colombo, Antonio: Acknowledgments. (line 60)
* Colombo, Antonio <1>: Contributors. (line 143) * Colombo, Antonio <1>: Contributors. (line 143)
* colon (:), ?: operator: Precedence. (line 91) * colon (:), ?: operator: Precedence. (line 91)
* colon (:), :: namespace separator: Qualified Names. (line 6)
* columns, aligning: Print Examples. (line 69) * columns, aligning: Print Examples. (line 69)
* columns, cutting: Cut Program. (line 6) * columns, cutting: Cut Program. (line 6)
* comma (,), in range patterns: Ranges. (line 6) * comma (,), in range patterns: Ranges. (line 6)
* command completion, in debugger: Readline Support. (line 6) * command completion, in debugger: Readline Support. (line 6)
* command line, arguments: Other Arguments. (line 6)
* command line, arguments <1>: Auto-set. (line 15)
* command line, arguments <2>: Auto-set. (line 154)
* command line, arguments <3>: ARGC and ARGV. (line 6)
* command line, directories on: Command-line directories.
(line 6)
* command line, formats: Running gawk. (line 12) * command line, formats: Running gawk. (line 12)
* command line, FS on, setting: Command Line Field Separator.
(line 6)
* command line, invoking awk from: Command Line. (line 6)
* command line, option -f: Long. (line 12) * command line, option -f: Long. (line 12)
* command line, invoking awk from: Command Line. (line 6)
* command line, options: Options. (line 6) * command line, options: Options. (line 6)
* command line, options, end of: Options. (line 59) * command line, options, end of: Options. (line 59)
* command line, arguments: Other Arguments. (line 6)
* command line, FS on, setting: Command Line Field Separator.
(line 6)
* command line, directories on: Command-line directories.
(line 6)
* command line, variables, assigning on: Assignment Options. (line 6) * command line, variables, assigning on: Assignment Options. (line 6)
* command-line options, processing: Getopt Function. (line 6) * command line, arguments <1>: Auto-set. (line 15)
* command-line options, string extraction: String Extraction. (line 6) * command line, arguments <2>: Auto-set. (line 154)
* command line, arguments <3>: ARGC and ARGV. (line 6)
* command line, options, processing: Getopt Function. (line 6)
* command line, options, string extraction: String Extraction.
(line 6)
* commands debugger command: Debugger Execution Control. * commands debugger command: Debugger Execution Control.
(line 10) (line 10)
* commands to execute at breakpoint: Debugger Execution Control. * commands to execute at breakpoint: Debugger Execution Control.
(line 10) (line 10)
* commenting: Comments. (line 6) * commenting: Comments. (line 6)
* commenting, backslash continuation and: Statements/Lines. (line 75) * commenting, backslash continuation and: Statements/Lines. (line 77)
* common extensions, ** operator: Arithmetic Ops. (line 30) * common extensions, \x escape sequence: Escape Sequences. (line 61)
* common extensions, **= operator: Assignment Ops. (line 138) * common extensions, RS as a regexp: gawk split records. (line 6)
* common extensions, /dev/stderr special file: Special FD. (line 48) * common extensions, single character fields: Single Character Fields.
(line 6)
* common extensions, /dev/stdin special file: Special FD. (line 48) * common extensions, /dev/stdin special file: Special FD. (line 48)
* common extensions, /dev/stdout special file: Special FD. (line 48) * common extensions, /dev/stdout special file: Special FD. (line 48)
* common extensions, BINMODE variable: PC Using. (line 20) * common extensions, /dev/stderr special file: Special FD. (line 48)
* common extensions, ** operator: Arithmetic Ops. (line 30)
* common extensions, **= operator: Assignment Ops. (line 138)
* common extensions, delete to delete entire arrays: Delete. (line 39) * common extensions, delete to delete entire arrays: Delete. (line 39)
* common extensions, func keyword: Definition Syntax. (line 99)
* common extensions, length() applied to an array: String Functions. * common extensions, length() applied to an array: String Functions.
(line 201) (line 207)
* common extensions, RS as a regexp: gawk split records. (line 6) * common extensions, func keyword: Definition Syntax. (line 99)
* common extensions, single character fields: Single Character Fields. * common extensions, BINMODE variable: PC Using. (line 20)
(line 6)
* common extensions, \x escape sequence: Escape Sequences. (line 61)
* comp.lang.awk newsgroup: Usenet. (line 11) * comp.lang.awk newsgroup: Usenet. (line 11)
* comparison expressions: Typing and Comparison. * comparison expressions: Typing and Comparison.
(line 9) (line 9)
* comparison expressions, as patterns: Expression Patterns. (line 14)
* comparison expressions, string vs. regexp: Comparison Operators. * comparison expressions, string vs. regexp: Comparison Operators.
(line 79) (line 79)
* compatibility mode (gawk), extensions: POSIX/GNU. (line 6) * comparison expressions, as patterns: Expression Patterns. (line 14)
* compatibility mode (gawk), specifying: Options. (line 86)
* compatibility mode (gawk), file names: Special Caveats. (line 9) * compatibility mode (gawk), file names: Special Caveats. (line 9)
* compatibility mode (gawk), hexadecimal numbers: Nondecimal-numbers.
(line 59)
* compatibility mode (gawk), octal numbers: Nondecimal-numbers. * compatibility mode (gawk), octal numbers: Nondecimal-numbers.
(line 59) (line 59)
* compatibility mode (gawk), specifying: Options. (line 86) * compatibility mode (gawk), hexadecimal numbers: Nondecimal-numbers.
(line 59)
* compatibility mode (gawk), extensions: POSIX/GNU. (line 6)
* compiled programs: Basic High Level. (line 13) * compiled programs: Basic High Level. (line 13)
* compiled programs <1>: Glossary. (line 216) * compiled programs <1>: Glossary. (line 216)
* compiling gawk for Cygwin: Cygwin. (line 6) * compiling gawk, for MS-Windows: PC Compiling. (line 11)
* compiling gawk for MS-Windows: PC Compiling. (line 11) * compiling gawk, for Cygwin: Cygwin. (line 6)
* compiling gawk for VMS: VMS Compilation. (line 6) * compiling gawk, for VMS: VMS Compilation. (line 6)
* compl: Bitwise Functions. (line 44) * compl: Bitwise Functions. (line 44)
* complement, bitwise: Bitwise Functions. (line 25) * complement, bitwise: Bitwise Functions. (line 25)
* component name: Qualified Names. (line 6) * component name: Qualified Names. (line 6)
* component names, naming rules: Naming Rules. (line 6) * component name, naming rules: Naming Rules. (line 6)
* compound statements, control statements and: Statements. (line 10) * compound statements, control statements and: Statements. (line 10)
* concatenating: Concatenation. (line 9) * concatenating: Concatenation. (line 9)
* condition debugger command: Breakpoint Control. (line 54) * condition debugger command: Breakpoint Control. (line 54)
* conditional expressions: Conditional Exp. (line 6) * conditional expressions: Conditional Exp. (line 6)
* configuration option, --disable-extensions: Additional Configuration Options. * configuration option, --disable-extensions: Additional Configuration Options.
(line 9) (line 9)
* configuration option, --disable-lint: Additional Configuration Options. * configuration option, --disable-lint: Additional Configuration Options.
(line 19) (line 19)
* configuration option, --disable-mpfr: Additional Configuration Options. * configuration option, --disable-mpfr: Additional Configuration Options.
(line 36) (line 36)
* configuration option, --disable-nls: Additional Configuration Options. * configuration option, --disable-nls: Additional Configuration Options.
(line 41) (line 41)
* configuration option, --enable-versioned-extension-dir: Additional Configurati on Options. * configuration option, --enable-versioned-extension-dir: Additional Configurati on Options.
(line 46) (line 46)
* configuration options, gawk: Additional Configuration Options. * configuration options, gawk: Additional Configuration Options.
(line 6) (line 6)
* constant regexps: Regexp Usage. (line 57) * constants, regexp: Regexp Usage. (line 57)
* constants, nondecimal: Nondecimal Data. (line 6)
* constants, numeric: Scalar Constants. (line 6)
* constants, types of: Constants. (line 6) * constants, types of: Constants. (line 6)
* constants, numeric: Scalar Constants. (line 6)
* constants, string: Scalar Constants. (line 15)
* constants, nondecimal: Nondecimal Data. (line 6)
* continue debugger command: Debugger Execution Control. * continue debugger command: Debugger Execution Control.
(line 33) (line 33)
* continue program, in debugger: Debugger Execution Control. * continue program, in debugger: Debugger Execution Control.
(line 33) (line 33)
* continue statement: Continue Statement. (line 6) * continue statement: Continue Statement. (line 6)
* control statements: Statements. (line 6) * control statements: Statements. (line 6)
* controlling array scanning order: Controlling Scanning. * controlling array scanning order: Controlling Scanning.
(line 14) (line 14)
* convert string to lower case: String Functions. (line 529) * converting, string to numbers: Strings And Numbers. (line 6)
* convert string to number: String Functions. (line 396) * converting, numbers to strings: Strings And Numbers. (line 6)
* convert string to upper case: String Functions. (line 535) * converting, integer array subscripts to strings: Numeric Array Subscripts.
* converting integer array subscripts: Numeric Array Subscripts.
(line 31) (line 31)
* converting, string to numbers <1>: String Functions. (line 402)
* converting, string to lower case: String Functions. (line 535)
* converting, string to upper case: String Functions. (line 541)
* converting, dates to timestamps: Time Functions. (line 78) * converting, dates to timestamps: Time Functions. (line 78)
* converting, numbers to strings: Strings And Numbers. (line 6) * converting, string to numbers <2>: Bitwise Functions. (line 109)
* converting, numbers to strings <1>: Bitwise Functions. (line 109) * converting, numbers to strings <1>: Bitwise Functions. (line 109)
* converting, strings to numbers: Strings And Numbers. (line 6)
* converting, strings to numbers <1>: Bitwise Functions. (line 109)
* CONVFMT variable: Strings And Numbers. (line 29) * CONVFMT variable: Strings And Numbers. (line 29)
* CONVFMT variable <1>: User-modified. (line 30) * CONVFMT variable <1>: User-modified. (line 30)
* CONVFMT variable, array subscripts and: Numeric Array Subscripts. * CONVFMT variable, array subscripts and: Numeric Array Subscripts.
(line 6) (line 6)
* cookie: Glossary. (line 255) * cookie: Glossary. (line 255)
* coprocesses, getline from: Getline/Coprocess. (line 6)
* coprocesses: Redirection. (line 96) * coprocesses: Redirection. (line 96)
* coprocesses <1>: Two-way I/O. (line 27)
* coprocesses, closing: Close Files And Pipes. * coprocesses, closing: Close Files And Pipes.
(line 6) (line 6)
* coprocesses, getline from: Getline/Coprocess. (line 6) * coprocesses <1>: Two-way I/O. (line 27)
* cos: Numeric Functions. (line 16) * cos: Numeric Functions. (line 16)
* cosine: Numeric Functions. (line 16) * cosine: Numeric Functions. (line 16)
* counting: Wc Program. (line 6) * counting words, lines, and characters: Wc Program. (line 6)
* csh utility: Statements/Lines. (line 43) * csh utility: Statements/Lines. (line 45)
* csh utility, POSIXLY_CORRECT environment variable: Options. (line 388) * csh utility, POSIXLY_CORRECT environment variable: Options. (line 399)
* csh utility, |& operator, comparison with: Two-way I/O. (line 27) * csh utility, |& operator, comparison with: Two-way I/O. (line 27)
* ctime() user-defined function: Function Example. (line 74) * ctime() user-defined function: Function Example. (line 74)
* Curreli, Marco: Contributors. (line 147) * Curreli, Marco: Contributors. (line 147)
* currency symbols, localization: Explaining gettext. (line 104) * currency symbols, localization: Explaining gettext. (line 104)
* current namespace, pushing and popping: Changing The Namespace. * current namespace, pushing and popping: Changing The Namespace.
(line 29) (line 29)
* current source file, show in debugger: Debugger Info. (line 37)
* current system time: Time Functions. (line 68) * current system time: Time Functions. (line 68)
* custom.h file: Configuration Philosophy. * custom.h file: Configuration Philosophy.
(line 30) (line 30)
* customized input parser: Input Parsers. (line 6) * customized input parser: Input Parsers. (line 6)
* customized output wrapper: Output Wrappers. (line 6) * customized output wrapper: Output Wrappers. (line 6)
* customized two-way processor: Two-way processors. (line 6) * customized two-way processor: Two-way processors. (line 6)
* cut utility: Cut Program. (line 6) * cut utility: Cut Program. (line 6)
* cut utility <1>: Cut Program. (line 6) * cut utility <1>: Cut Program. (line 6)
* cut.awk program: Cut Program. (line 45) * cut.awk program: Cut Program. (line 45)
* d debugger command (alias for delete): Breakpoint Control. (line 64) * d debugger command (alias for delete): Breakpoint Control. (line 64)
* d.c., See dark corner: Conventions. (line 42)
* dark corner: Conventions. (line 42) * dark corner: Conventions. (line 42)
* dark corner <1>: Glossary. (line 266) * dark corner, ARGV variable, value of: Executable Scripts. (line 55)
* dark corner, "0" is actually true: Truth Values. (line 24) * dark corner, invoking awk: Command Line. (line 16)
* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 149)
* dark corner, ARGV variable, value of: Executable Scripts. (line 59)
* dark corner, array subscripts: Uninitialized Subscripts.
(line 43)
* dark corner, break statement: Break Statement. (line 51)
* dark corner, close() function: Close Files And Pipes.
(line 132)
* dark corner, command-line arguments: Assignment Options. (line 43)
* dark corner, continue statement: Continue Statement. (line 44)
* dark corner, CONVFMT variable: Strings And Numbers. (line 39)
* dark corner, empty programs: Command Line. (line 20) * dark corner, empty programs: Command Line. (line 20)
* dark corner, escape sequences: Other Arguments. (line 38) * dark corner, escape sequences: Other Arguments. (line 46)
* dark corner, escape sequences, for metacharacters: Escape Sequences. * dark corner, escape sequences, for metacharacters: Escape Sequences.
(line 144) (line 144)
* dark corner, exit statement: Exit Statement. (line 30) * dark corner, input files: awk split records. (line 117)
* dark corner, strings, storing: gawk split records. (line 86)
* dark corner, NF variable, decrementing: Changing Fields. (line 107)
* dark corner, ^, in FS: Regexp Field Splitting.
(line 59)
* dark corner, FS as null string: Single Character Fields.
(line 20)
* dark corner, field separators: Full Line Fields. (line 22) * dark corner, field separators: Full Line Fields. (line 22)
* dark corner, multiline records: Multiple Line. (line 35)
* dark corner, FILENAME variable: Getline Notes. (line 19) * dark corner, FILENAME variable: Getline Notes. (line 19)
* dark corner, FILENAME variable <1>: Auto-set. (line 108) * dark corner, OFMT variable: OFMT. (line 27)
* dark corner, FNR/NR variables: Auto-set. (line 409)
* dark corner, format-control characters: Control Letters. (line 33) * dark corner, format-control characters: Control Letters. (line 33)
* dark corner, format-control characters <1>: Control Letters. * dark corner, format-control characters <1>: Control Letters.
(line 108) (line 108)
* dark corner, FS as null string: Single Character Fields. * dark corner, close() function: Close Files And Pipes.
(line 20) (line 132)
* dark corner, input files: awk split records. (line 117) * dark corner, string continuation: Scalar Constants. (line 53)
* dark corner, invoking awk: Command Line. (line 16)
* dark corner, length() function: String Functions. (line 187)
* dark corner, locale's decimal point character: Locale influences conversions.
(line 17)
* dark corner, multiline records: Multiple Line. (line 35)
* dark corner, NF variable, decrementing: Changing Fields. (line 107)
* dark corner, OFMT variable: OFMT. (line 27)
* dark corner, range patterns, line continuation and: Ranges. (line 64)
* dark corner, regexp as second argument to index(): String Functions.
(line 165)
* dark corner, regexp constants: Standard Regexp Constants. * dark corner, regexp constants: Standard Regexp Constants.
(line 6) (line 6)
* dark corner, regexp constants, /= operator and: Assignment Ops.
(line 149)
* dark corner, regexp constants, as arguments to user-defined functions: Standar d Regexp Constants. * dark corner, regexp constants, as arguments to user-defined functions: Standar d Regexp Constants.
(line 43) (line 43)
* dark corner, split() function: String Functions. (line 366) * dark corner, command-line arguments: Assignment Options. (line 43)
* dark corner, string continuation: Scalar Constants. (line 53) * dark corner, CONVFMT variable: Strings And Numbers. (line 39)
* dark corner, strings, storing: gawk split records. (line 82) * dark corner, locale's decimal point character: Locale influences conversions.
(line 17)
* dark corner, regexp constants, /= operator and: Assignment Ops.
(line 149)
* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 149)
* dark corner, "0" is actually true: Truth Values. (line 24)
* dark corner, range patterns, line continuation and: Ranges. (line 64)
* dark corner, break statement: Break Statement. (line 51)
* dark corner, continue statement: Continue Statement. (line 44)
* dark corner, exit statement: Exit Statement. (line 30)
* dark corner, value of ARGV[0]: Auto-set. (line 39) * dark corner, value of ARGV[0]: Auto-set. (line 39)
* dark corner, ^, in FS: Regexp Field Splitting. * dark corner, FILENAME variable <1>: Auto-set. (line 108)
(line 59) * dark corner, FNR/NR variables: Auto-set. (line 409)
* dark corner, array subscripts: Uninitialized Subscripts.
(line 43)
* dark corner, regexp as second argument to index(): String Functions.
(line 171)
* dark corner, length() function: String Functions. (line 193)
* dark corner, split() function: String Functions. (line 372)
* dark corner <1>: Glossary. (line 266)
* data, fixed-width: Constant Size. (line 6) * data, fixed-width: Constant Size. (line 6)
* data-driven languages: Basic High Level. (line 74) * data-driven languages: Basic High Level. (line 74)
* database, group, reading: Group Functions. (line 6)
* database, users, reading: Passwd Functions. (line 6) * database, users, reading: Passwd Functions. (line 6)
* database, group, reading: Group Functions. (line 6)
* date utility, GNU: Time Functions. (line 17) * date utility, GNU: Time Functions. (line 17)
* date utility, POSIX: Time Functions. (line 255) * date utility, POSIX: Time Functions. (line 255)
* dates, converting to timestamps: Time Functions. (line 78) * dates, converting to timestamps: Time Functions. (line 78)
* dates, information related to, localization: Explaining gettext. * dates, information related to, localization: Explaining gettext.
(line 112) (line 112)
* Davies, Stephen: Acknowledgments. (line 60) * Davies, Stephen: Acknowledgments. (line 60)
* Davies, Stephen <1>: Contributors. (line 75) * Davies, Stephen <1>: Contributors. (line 75)
* Day, Robert P.J.: Acknowledgments. (line 79) * Day, Robert P.J.: Acknowledgments. (line 79)
* dcgettext: I18N Functions. (line 21) * dcgettext: I18N Functions. (line 21)
* dcgettext <1>: Programmer i18n. (line 20) * dcgettext <1>: Programmer i18n. (line 20)
* dcgettext() function (gawk), portability and: I18N Portability. * dcgettext() function (gawk), portability and: I18N Portability.
(line 33) (line 33)
* dcngettext: I18N Functions. (line 27) * dcngettext: I18N Functions. (line 27)
* dcngettext <1>: Programmer i18n. (line 37) * dcngettext <1>: Programmer i18n. (line 37)
* dcngettext() function (gawk), portability and: I18N Portability. * dcngettext() function (gawk), portability and: I18N Portability.
(line 33) (line 33)
* deadlocks: Two-way I/O. (line 53) * deadlocks: Two-way I/O. (line 53)
* debugger capabilities: Debugging Concepts. (line 16) * debugger, capabilities: Debugging Concepts. (line 16)
* debugger commands, b (break): Breakpoint Control. (line 11) * debugger, concepts: Debugging Terms. (line 6)
* debugger commands, backtrace: Execution Stack. (line 13) * debugger, how to start: Debugger Invocation. (line 6)
* debugger commands, break: Breakpoint Control. (line 11) * debugger, prompt: Debugger Invocation. (line 23)
* debugger commands, bt (backtrace): Execution Stack. (line 13) * debugger, setting a breakpoint: Finding The Bug. (line 32)
* debugger commands, c (continue): Debugger Execution Control. * debugger, commands, breakpoint: Finding The Bug. (line 32)
(line 33) * debugger, commands, break: Finding The Bug. (line 32)
* debugger commands, clear: Breakpoint Control. (line 36) * debugger, commands, b (break): Finding The Bug. (line 32)
* debugger commands, commands: Debugger Execution Control. * debugger, running the program: Finding The Bug. (line 39)
* debugger, commands, run: Finding The Bug. (line 39)
* debugger, stack frames, showing: Finding The Bug. (line 52)
* debugger, commands, bt (backtrace): Finding The Bug. (line 52)
* debugger, commands, backtrace: Finding The Bug. (line 52)
* debugger, commands, print: Finding The Bug. (line 68)
* debugger, commands, p (print): Finding The Bug. (line 68)
* debugger, commands, n (next): Finding The Bug. (line 105)
* debugger, commands, next: Finding The Bug. (line 105)
* debugger, printing single array elements: Finding The Bug. (line 140)
* debugger, printing all array elements: Finding The Bug. (line 154)
* debugger, repeating commands: List of Debugger Commands.
(line 21)
* debugger, commands, b (break) <1>: Breakpoint Control. (line 11)
* debugger, commands, break <1>: Breakpoint Control. (line 11)
* debugger, commands, clear: Breakpoint Control. (line 36)
* debugger, commands, condition: Breakpoint Control. (line 54)
* debugger, commands, d (delete): Breakpoint Control. (line 64)
* debugger, commands, delete: Breakpoint Control. (line 64)
* debugger, commands, disable: Breakpoint Control. (line 69)
* debugger, commands, e (enable): Breakpoint Control. (line 73)
* debugger, commands, enable: Breakpoint Control. (line 73)
* debugger, commands, ignore: Breakpoint Control. (line 87)
* debugger, commands, t (tbreak): Breakpoint Control. (line 90)
* debugger, commands, tbreak: Breakpoint Control. (line 90)
* debugger, commands, commands: Debugger Execution Control.
(line 10) (line 10)
* debugger commands, condition: Breakpoint Control. (line 54) * debugger, commands, silent: Debugger Execution Control.
* debugger commands, continue: Debugger Execution Control.
(line 33)
* debugger commands, d (delete): Breakpoint Control. (line 64)
* debugger commands, delete: Breakpoint Control. (line 64)
* debugger commands, disable: Breakpoint Control. (line 69)
* debugger commands, display: Viewing And Changing Data.
(line 8)
* debugger commands, down: Execution Stack. (line 23)
* debugger commands, dump: Miscellaneous Debugger Commands.
(line 9)
* debugger commands, e (enable): Breakpoint Control. (line 73)
* debugger commands, enable: Breakpoint Control. (line 73)
* debugger commands, end: Debugger Execution Control.
(line 10) (line 10)
* debugger commands, eval: Viewing And Changing Data. * debugger, commands, end: Debugger Execution Control.
(line 23) (line 10)
* debugger commands, f (frame): Execution Stack. (line 27) * debugger, commands, c (continue): Debugger Execution Control.
* debugger commands, finish: Debugger Execution Control. (line 33)
* debugger, commands, continue: Debugger Execution Control.
(line 33)
* debugger, commands, finish: Debugger Execution Control.
(line 39) (line 39)
* debugger commands, frame: Execution Stack. (line 27) * debugger, commands, n (next) <1>: Debugger Execution Control.
* debugger commands, h (help): Miscellaneous Debugger Commands.
(line 67)
* debugger commands, help: Miscellaneous Debugger Commands.
(line 67)
* debugger commands, i (info): Debugger Info. (line 13)
* debugger commands, ignore: Breakpoint Control. (line 87)
* debugger commands, info: Debugger Info. (line 13)
* debugger commands, l (list): Miscellaneous Debugger Commands.
(line 73)
* debugger commands, list: Miscellaneous Debugger Commands.
(line 73)
* debugger commands, n (next): Debugger Execution Control.
(line 43) (line 43)
* debugger commands, next: Debugger Execution Control. * debugger, commands, next <1>: Debugger Execution Control.
(line 43) (line 43)
* debugger commands, nexti: Debugger Execution Control. * debugger, commands, ni (nexti): Debugger Execution Control.
(line 49) (line 49)
* debugger commands, ni (nexti): Debugger Execution Control. * debugger, commands, nexti: Debugger Execution Control.
(line 49) (line 49)
* debugger commands, o (option): Debugger Info. (line 57) * debugger, commands, return: Debugger Execution Control.
* debugger commands, option: Debugger Info. (line 57)
* debugger commands, p (print): Viewing And Changing Data.
(line 39)
* debugger commands, print: Viewing And Changing Data.
(line 39)
* debugger commands, printf: Viewing And Changing Data.
(line 57)
* debugger commands, q (quit): Miscellaneous Debugger Commands.
(line 100)
* debugger commands, quit: Miscellaneous Debugger Commands.
(line 100)
* debugger commands, r (run): Debugger Execution Control.
(line 62)
* debugger commands, return: Debugger Execution Control.
(line 54) (line 54)
* debugger commands, run: Debugger Execution Control. * debugger, commands, r (run): Debugger Execution Control.
(line 62) (line 62)
* debugger commands, s (step): Debugger Execution Control. * debugger, commands, run <1>: Debugger Execution Control.
(line 68)
* debugger commands, set: Viewing And Changing Data.
(line 62) (line 62)
* debugger commands, si (stepi): Debugger Execution Control. * debugger, commands, s (step): Debugger Execution Control.
(line 75)
* debugger commands, silent: Debugger Execution Control.
(line 10)
* debugger commands, step: Debugger Execution Control.
(line 68) (line 68)
* debugger commands, stepi: Debugger Execution Control. * debugger, commands, step: Debugger Execution Control.
(line 68)
* debugger, commands, si (stepi): Debugger Execution Control.
(line 75) (line 75)
* debugger commands, t (tbreak): Breakpoint Control. (line 90) * debugger, commands, stepi: Debugger Execution Control.
* debugger commands, tbreak: Breakpoint Control. (line 90) (line 75)
* debugger commands, trace: Miscellaneous Debugger Commands. * debugger, commands, u (until): Debugger Execution Control.
(line 108)
* debugger commands, u (until): Debugger Execution Control.
(line 82) (line 82)
* debugger commands, undisplay: Viewing And Changing Data. * debugger, commands, until: Debugger Execution Control.
(line 83)
* debugger commands, until: Debugger Execution Control.
(line 82) (line 82)
* debugger commands, unwatch: Viewing And Changing Data. * debugger, commands, display: Viewing And Changing Data.
(line 87) (line 8)
* debugger commands, up: Execution Stack. (line 36) * debugger, commands, eval: Viewing And Changing Data.
* debugger commands, w (watch): Viewing And Changing Data. (line 23)
* debugger, commands, p (print) <1>: Viewing And Changing Data.
(line 39)
* debugger, commands, print <1>: Viewing And Changing Data.
(line 39)
* debugger, commands, printf: Viewing And Changing Data.
(line 57)
* debugger, commands, set: Viewing And Changing Data.
(line 62)
* debugger, commands, w (watch): Viewing And Changing Data.
(line 70) (line 70)
* debugger commands, watch: Viewing And Changing Data. * debugger, commands, watch: Viewing And Changing Data.
(line 70) (line 70)
* debugger commands, where (backtrace): Execution Stack. (line 13) * debugger, commands, undisplay: Viewing And Changing Data.
* debugger, b command: Finding The Bug. (line 32) (line 83)
* debugger, backtrace command: Finding The Bug. (line 52) * debugger, commands, unwatch: Viewing And Changing Data.
* debugger, break command: Finding The Bug. (line 32) (line 87)
* debugger, breakpoint command: Finding The Bug. (line 32) * debugger, commands, bt (backtrace) <1>: Execution Stack. (line 13)
* debugger, bt command: Finding The Bug. (line 52) * debugger, commands, backtrace <1>: Execution Stack. (line 13)
* debugger, command completion: Readline Support. (line 6) * debugger, commands, where (backtrace): Execution Stack. (line 13)
* debugger, concepts: Debugging Terms. (line 6) * debugger, commands, down: Execution Stack. (line 23)
* debugger, commands, f (frame): Execution Stack. (line 27)
* debugger, commands, frame: Execution Stack. (line 27)
* debugger, commands, up: Execution Stack. (line 36)
* debugger, commands, i (info): Debugger Info. (line 13)
* debugger, commands, info: Debugger Info. (line 13)
* debugger, commands, o (option): Debugger Info. (line 57)
* debugger, commands, option: Debugger Info. (line 57)
* debugger, options: Debugger Info. (line 57)
* debugger, history size: Debugger Info. (line 65)
* debugger, default list amount: Debugger Info. (line 69) * debugger, default list amount: Debugger Info. (line 69)
* debugger, history expansion: Readline Support. (line 6) * debugger, prompt <1>: Debugger Info. (line 78)
* debugger, history file: Debugger Info. (line 81) * debugger, history file: Debugger Info. (line 81)
* debugger, history size: Debugger Info. (line 65)
* debugger, how to start: Debugger Invocation. (line 6)
* debugger, instruction tracing: Debugger Info. (line 90) * debugger, instruction tracing: Debugger Info. (line 90)
* debugger, save commands to a file: Debugger Info. (line 92)
* debugger, read commands from a file: Debugger Info. (line 97)
* debugger, commands, dump: Miscellaneous Debugger Commands.
(line 9)
* debugger, commands, h (help): Miscellaneous Debugger Commands.
(line 67)
* debugger, commands, help: Miscellaneous Debugger Commands.
(line 67)
* debugger, commands, l (list): Miscellaneous Debugger Commands.
(line 73)
* debugger, commands, list: Miscellaneous Debugger Commands.
(line 73)
* debugger, commands, q (quit): Miscellaneous Debugger Commands.
(line 100)
* debugger, commands, quit: Miscellaneous Debugger Commands.
(line 100)
* debugger, commands, trace: Miscellaneous Debugger Commands.
(line 108)
* debugger, command completion: Readline Support. (line 6)
* debugger, history expansion: Readline Support. (line 6)
* debugger, limitations: Limitations. (line 6)
* debugger, interaction with namespaces: Namespace And Features. * debugger, interaction with namespaces: Namespace And Features.
(line 17) (line 17)
* debugger, limitations: Limitations. (line 6) * debugging, awk programs: Debugger. (line 6)
* debugger, n command: Finding The Bug. (line 105)
* debugger, next command: Finding The Bug. (line 105)
* debugger, options: Debugger Info. (line 57)
* debugger, p command: Finding The Bug. (line 68)
* debugger, print command: Finding The Bug. (line 68)
* debugger, printing all array elements: Finding The Bug. (line 154)
* debugger, printing single array elements: Finding The Bug. (line 140)
* debugger, prompt: Debugger Invocation. (line 23)
* debugger, prompt <1>: Debugger Info. (line 78)
* debugger, read commands from a file: Debugger Info. (line 97)
* debugger, repeating commands: List of Debugger Commands.
(line 21)
* debugger, run command: Finding The Bug. (line 39)
* debugger, running the program: Finding The Bug. (line 39)
* debugger, save commands to a file: Debugger Info. (line 92)
* debugger, setting a breakpoint: Finding The Bug. (line 32)
* debugger, stack frames, showing: Finding The Bug. (line 52)
* debugging awk programs: Debugger. (line 6)
* debugging gawk, bug reports: Bugs. (line 9)
* debugging, example session: Sample Debugging Session. * debugging, example session: Sample Debugging Session.
(line 6) (line 6)
* decimal point character, locale specific: Options. (line 295) * debugging gawk, bug reports: Bugs. (line 9)
* decimal point character, locale specific: Options. (line 302)
* decrement operators: Increment Ops. (line 35) * decrement operators: Increment Ops. (line 35)
* default keyword: Switch Statement. (line 6) * default keyword: Switch Statement. (line 6)
* Deifik, Scott: Acknowledgments. (line 60) * Deifik, Scott: Acknowledgments. (line 60)
* Deifik, Scott <1>: Contributors. (line 54) * Deifik, Scott <1>: Contributors. (line 54)
* delete ARRAY: Delete. (line 39) * delete ARRAY: Delete. (line 39)
* delete breakpoint, at location: Breakpoint Control. (line 36) * delete breakpoint, at location: Breakpoint Control. (line 36)
* delete breakpoint, by number: Breakpoint Control. (line 64) * delete breakpoint, by number: Breakpoint Control. (line 64)
* delete debugger command: Breakpoint Control. (line 64) * delete debugger command: Breakpoint Control. (line 64)
* delete statement: Delete. (line 6) * delete statement: Delete. (line 6)
* delete watchpoint: Viewing And Changing Data. * delete watchpoint: Viewing And Changing Data.
(line 87) (line 87)
* deleting elements in arrays: Delete. (line 6) * deleting, elements in arrays: Delete. (line 6)
* deleting entire arrays: Delete. (line 39) * deleting, entire arrays: Delete. (line 39)
* Demaille, Akim: Acknowledgments. (line 60) * Demaille, Akim: Acknowledgments. (line 60)
* describe call stack frame, in debugger: Debugger Info. (line 27) * describe call stack frame, in debugger: Debugger Info. (line 27)
* differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV. * differences in awk and gawk, AWKPATH environment variable: AWKPATH Variable.
(line 89) (line 6)
* differences in awk and gawk, ARGIND variable: Auto-set. (line 44)
* differences in awk and gawk, array elements, deleting: Delete.
(line 39)
* differences in awk and gawk, AWKLIBPATH environment variable: AWKLIBPATH Varia ble. * differences in awk and gawk, AWKLIBPATH environment variable: AWKLIBPATH Varia ble.
(line 6) (line 6)
* differences in awk and gawk, AWKPATH environment variable: AWKPATH Variable. * differences in awk and gawk, regular expressions: Case-sensitivity.
(line 26)
* differences in awk and gawk, record separators: awk split records.
(line 131)
* differences in awk and gawk, RS/RT variables: awk split records.
(line 131)
* differences in awk and gawk, RS/RT variables <1>: gawk split records.
(line 58)
* differences in awk and gawk, strings, storing: gawk split records.
(line 80)
* differences in awk and gawk, single-character fields: Single Character Fields.
(line 6) (line 6)
* differences in awk and gawk, BEGIN/END patterns: I/O And BEGIN/END. * differences in awk and gawk, RS/RT variables <2>: Multiple Line.
(line 15) (line 139)
* differences in awk and gawk, BEGINFILE/ENDFILE patterns: BEGINFILE/ENDFILE. * differences in awk and gawk, getline command: Getline. (line 19)
* differences in awk and gawk, input/output operators: Getline/Coprocess.
(line 6) (line 6)
* differences in awk and gawk, BINMODE variable: User-modified. * differences in awk and gawk, implementation limitations: Getline Notes.
(line 15) (line 14)
* differences in awk and gawk, BINMODE variable <1>: PC Using. * differences in awk and gawk, read timeouts: Read Timeout. (line 6)
(line 20) * differences in awk and gawk, retrying input: Retrying Input.
(line 6)
* differences in awk and gawk, command-line directories: Command-line directorie
s.
(line 6)
* differences in awk and gawk, print/printf statements: Format Modifiers.
(line 13)
* differences in awk and gawk, input/output operators <1>: Redirection.
(line 96)
* differences in awk and gawk, implementation limitations <1>: Redirection.
(line 129)
* differences in awk and gawk, error messages: Special FD. (line 19)
* differences in awk and gawk, close() function: Close Files And Pipes. * differences in awk and gawk, close() function: Close Files And Pipes.
(line 81) (line 81)
* differences in awk and gawk, close() function <1>: Close Files And Pipes. * differences in awk and gawk, close() function <1>: Close Files And Pipes.
(line 132) (line 132)
* differences in awk and gawk, command-line directories: Command-line directorie * differences in awk and gawk, strings: Scalar Constants. (line 20)
s. * differences in awk and gawk, strings <1>: Scalar Constants. (line 53)
* differences in awk and gawk, regexp constants: Standard Regexp Constants.
(line 43)
* differences in awk and gawk, trunc-mod operation: Arithmetic Ops.
(line 66)
* differences in awk and gawk, line continuations: Conditional Exp.
(line 34)
* differences in awk and gawk, BEGIN/END patterns: I/O And BEGIN/END.
(line 15)
* differences in awk and gawk, BEGINFILE/ENDFILE patterns: BEGINFILE/ENDFILE.
(line 6) (line 6)
* differences in awk and gawk, ERRNO variable: Auto-set. (line 87) * differences in awk and gawk, BINMODE variable: User-modified.
* differences in awk and gawk, error messages: Special FD. (line 19) (line 15)
* differences in awk and gawk, FIELDWIDTHS variable: User-modified. * differences in awk and gawk, FIELDWIDTHS variable: User-modified.
(line 37) (line 37)
* differences in awk and gawk, FPAT variable: User-modified. (line 46) * differences in awk and gawk, FPAT variable: User-modified. (line 46)
* differences in awk and gawk, FUNCTAB variable: Auto-set. (line 134)
* differences in awk and gawk, function arguments (gawk): Calling Built-in.
(line 16)
* differences in awk and gawk, getline command: Getline. (line 19)
* differences in awk and gawk, IGNORECASE variable: User-modified. * differences in awk and gawk, IGNORECASE variable: User-modified.
(line 79) (line 79)
* differences in awk and gawk, implementation limitations: Getline Notes.
(line 14)
* differences in awk and gawk, implementation limitations <1>: Redirection.
(line 129)
* differences in awk and gawk, indirect function calls: Indirect Calls.
(line 6)
* differences in awk and gawk, input/output operators: Getline/Coprocess.
(line 6)
* differences in awk and gawk, input/output operators <1>: Redirection.
(line 96)
* differences in awk and gawk, length() function: String Functions.
(line 201)
* differences in awk and gawk, line continuations: Conditional Exp.
(line 34)
* differences in awk and gawk, LINT variable: User-modified. (line 90) * differences in awk and gawk, LINT variable: User-modified. (line 90)
* differences in awk and gawk, match() function: String Functions. * differences in awk and gawk, TEXTDOMAIN variable: User-modified.
(line 263) (line 155)
* differences in awk and gawk, print/printf statements: Format Modifiers. * differences in awk and gawk, ARGIND variable: Auto-set. (line 44)
(line 13) * differences in awk and gawk, ERRNO variable: Auto-set. (line 87)
* differences in awk and gawk, FUNCTAB variable: Auto-set. (line 134)
* differences in awk and gawk, PROCINFO array: Auto-set. (line 148) * differences in awk and gawk, PROCINFO array: Auto-set. (line 148)
* differences in awk and gawk, read timeouts: Read Timeout. (line 6)
* differences in awk and gawk, record separators: awk split records.
(line 131)
* differences in awk and gawk, regexp constants: Standard Regexp Constants.
(line 43)
* differences in awk and gawk, regular expressions: Case-sensitivity.
(line 26)
* differences in awk and gawk, retrying input: Retrying Input.
(line 6)
* differences in awk and gawk, RS/RT variables: awk split records.
(line 131)
* differences in awk and gawk, RS/RT variables <1>: gawk split records.
(line 58)
* differences in awk and gawk, RS/RT variables <2>: Multiple Line.
(line 139)
* differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 348) * differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 348)
* differences in awk and gawk, single-character fields: Single Character Fields.
(line 6)
* differences in awk and gawk, split() function: String Functions.
(line 351)
* differences in awk and gawk, strings: Scalar Constants. (line 20)
* differences in awk and gawk, strings <1>: Scalar Constants. (line 53)
* differences in awk and gawk, strings, storing: gawk split records.
(line 76)
* differences in awk and gawk, SYMTAB variable: Auto-set. (line 352) * differences in awk and gawk, SYMTAB variable: Auto-set. (line 352)
* differences in awk and gawk, TEXTDOMAIN variable: User-modified. * differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV.
(line 155) (line 89)
* differences in awk and gawk, trunc-mod operation: Arithmetic Ops. * differences in awk and gawk, array elements, deleting: Delete.
(line 66) (line 39)
* directories, command-line: Command-line directories. * differences in awk and gawk, function arguments: Calling Built-in.
(line 16)
* differences in awk and gawk, length() function: String Functions.
(line 207)
* differences in awk and gawk, match() function: String Functions.
(line 269)
* differences in awk and gawk, split() function: String Functions.
(line 357)
* differences in awk and gawk, indirect function calls: Indirect Calls.
(line 6)
* differences in awk and gawk, BINMODE variable <1>: PC Using.
(line 20)
* directories, searching, for source files: AWKPATH Variable. (line 6)
* directories, searching, for loadable extensions: AWKLIBPATH Variable.
(line 6) (line 6)
* directories, searching: Programs Exercises. (line 70) * directories, command-line: Command-line directories.
* directories, searching for loadable extensions: AWKLIBPATH Variable.
(line 6) (line 6)
* directories, searching for source files: AWKPATH Variable. (line 6) * directories, searching, for source files <1>: Programs Exercises.
(line 70)
* disable breakpoint: Breakpoint Control. (line 69) * disable breakpoint: Breakpoint Control. (line 69)
* disable debugger command: Breakpoint Control. (line 69) * disable debugger command: Breakpoint Control. (line 69)
* display debugger command: Viewing And Changing Data. * display debugger command: Viewing And Changing Data.
(line 8) (line 8)
* display debugger options: Debugger Info. (line 57) * display debugger options: Debugger Info. (line 57)
* division: Arithmetic Ops. (line 44) * division: Arithmetic Ops. (line 44)
* do-while statement: Do Statement. (line 6)
* do-while statement, use of regexps in: Regexp Usage. (line 19) * do-while statement, use of regexps in: Regexp Usage. (line 19)
* documentation, of awk programs: Library Names. (line 6) * do-while statement: Do Statement. (line 6)
* documentation, online: Manual History. (line 11) * documentation, online: Manual History. (line 11)
* documentation, of awk programs: Library Names. (line 6)
* documents, searching: Dupword Program. (line 6) * documents, searching: Dupword Program. (line 6)
* dollar sign ($), regexp operator: Regexp Operator Details.
(line 31)
* dollar sign ($), $ field operator: Fields. (line 19) * dollar sign ($), $ field operator: Fields. (line 19)
* dollar sign ($), $ field operator <1>: Precedence. (line 42)
* dollar sign ($), incrementing fields and arrays: Increment Ops. * dollar sign ($), incrementing fields and arrays: Increment Ops.
(line 30) (line 30)
* dollar sign ($), regexp operator: Regexp Operator Details. * dollar sign ($), $ field operator <1>: Precedence. (line 42)
(line 31)
* double quote ("), in regexp constants: Computed Regexps. (line 30)
* double quote ("), in shell commands: Quoting. (line 54) * double quote ("), in shell commands: Quoting. (line 54)
* double quote ("), in regexp constants: Computed Regexps. (line 30)
* double-precision: Computer Arithmetic. (line 61) * double-precision: Computer Arithmetic. (line 61)
* down debugger command: Execution Stack. (line 23) * down debugger command: Execution Stack. (line 23)
* Drepper, Ulrich: Acknowledgments. (line 52) * Drepper, Ulrich: Acknowledgments. (line 52)
* Duman, Patrice: Acknowledgments. (line 75) * Duman, Patrice: Acknowledgments. (line 75)
* dump all variables of a program: Options. (line 98) * dump all variables of a program: Options. (line 98)
* dump debugger command: Miscellaneous Debugger Commands. * dump debugger command: Miscellaneous Debugger Commands.
(line 9) (line 9)
* dupword.awk program: Dupword Program. (line 31) * dupword.awk program: Dupword Program. (line 31)
* dynamic profiling: Profiling. (line 179) * dynamic profiling: Profiling. (line 179)
* dynamically loaded extensions: Dynamic Extensions. (line 6) * dynamically loaded extensions: Dynamic Extensions. (line 6)
* e debugger command (alias for enable): Breakpoint Control. (line 73) * e debugger command (alias for enable): Breakpoint Control. (line 73)
* EBCDIC: Ordinal Functions. (line 45) * EBCDIC: Ordinal Functions. (line 45)
* EBCDIC <1>: Ranges and Locales. (line 10)
* EBCDIC <2>: History summary. (line 20)
* effective group ID of gawk user: Auto-set. (line 172) * effective group ID of gawk user: Auto-set. (line 172)
* effective user ID of gawk user: Auto-set. (line 180) * effective user ID of gawk user: Auto-set. (line 180)
* egrep utility: Bracket Expressions. (line 34) * egrep utility: Bracket Expressions. (line 34)
* egrep utility <1>: Egrep Program. (line 6) * egrep utility <1>: Egrep Program. (line 6)
* egrep.awk program: Egrep Program. (line 53) * egrep.awk program: Egrep Program. (line 53)
* elements in arrays: Reference to Elements.
(line 6)
* elements in arrays, assigning values: Assigning Elements. (line 6) * elements in arrays, assigning values: Assigning Elements. (line 6)
* elements in arrays, deleting: Delete. (line 6) * elements in arrays, scanning: Scanning an Array. (line 6)
* elements in arrays, order of access by in operator: Scanning an Array. * elements in arrays, order of access by in operator: Scanning an Array.
(line 48) (line 48)
* elements in arrays, scanning: Scanning an Array. (line 6) * elements in arrays, deleting: Delete. (line 6)
* elements of arrays: Reference to Elements.
(line 6)
* email address for bug reports, bug-gawk@gnu.org: Bug address. * email address for bug reports, bug-gawk@gnu.org: Bug address.
(line 31) (line 31)
* empty array elements: Reference to Elements. * empty array elements: Reference to Elements.
(line 18) (line 18)
* empty pattern: Empty. (line 6) * empty pattern: Empty. (line 6)
* empty strings: awk split records. (line 121)
* empty strings, See null strings: Regexp Field Splitting.
(line 43)
* EMRED: TCP/IP Networking. (line 6) * EMRED: TCP/IP Networking. (line 6)
* enable breakpoint: Breakpoint Control. (line 73) * enable breakpoint: Breakpoint Control. (line 73)
* enable debugger command: Breakpoint Control. (line 73) * enable debugger command: Breakpoint Control. (line 73)
* end debugger command: Debugger Execution Control. * end debugger command: Debugger Execution Control.
(line 10) (line 10)
* END pattern, Boolean patterns and: Expression Patterns. (line 70)
* END pattern: BEGIN/END. (line 6) * END pattern: BEGIN/END. (line 6)
* END pattern <1>: Using BEGIN/END. (line 6) * END pattern <1>: Using BEGIN/END. (line 6)
* END pattern, assert() user-defined function and: Assert Function. * END pattern, operators and: Using BEGIN/END. (line 17)
(line 75) * END pattern, print statement and: I/O And BEGIN/END. (line 15)
* END pattern, Boolean patterns and: Expression Patterns. (line 70)
* END pattern, execution order not affected by @namespace: Changing The Namespac
e.
(line 37)
* END pattern, exit statement and: Exit Statement. (line 12)
* END pattern, next/nextfile statements and: I/O And BEGIN/END. * END pattern, next/nextfile statements and: I/O And BEGIN/END.
(line 36) (line 36)
* END pattern, next/nextfile statements and <1>: Next Statement. * END pattern, next/nextfile statements and <1>: Next Statement.
(line 44) (line 44)
* END pattern, operators and: Using BEGIN/END. (line 17) * END pattern, exit statement and: Exit Statement. (line 12)
* END pattern, print statement and: I/O And BEGIN/END. (line 15) * END pattern, assert() user-defined function and: Assert Function.
(line 75)
* END pattern, profiling and: Profiling. (line 62) * END pattern, profiling and: Profiling. (line 62)
* ENDFILE pattern: BEGINFILE/ENDFILE. (line 6) * END pattern, @namespace directive and: Changing The Namespace.
(line 37)
* ENDFILE pattern, Boolean patterns and: Expression Patterns. (line 70) * ENDFILE pattern, Boolean patterns and: Expression Patterns. (line 70)
* ENDFILE pattern, execution order not affected by @namespace: Changing The Name * ENDFILE pattern: BEGINFILE/ENDFILE. (line 6)
space. * ENDFILE pattern, @namespace directive and: Changing The Namespace.
(line 37) (line 37)
* endfile() user-defined function: Filetrans Function. (line 62) * endfile() user-defined function: Filetrans Function. (line 62)
* endgrent() function (C library): Group Functions. (line 213) * endgrent() function (C library): Group Functions. (line 213)
* endgrent() user-defined function: Group Functions. (line 216) * endgrent() user-defined function: Group Functions. (line 216)
* endpwent() function (C library): Passwd Functions. (line 208) * endpwent() function (C library): Passwd Functions. (line 208)
* endpwent() user-defined function: Passwd Functions. (line 211) * endpwent() user-defined function: Passwd Functions. (line 211)
* English, Steve: Advanced Features. (line 6) * English, Steve: Advanced Features. (line 6)
* ENVIRON array: Auto-set. (line 59) * ENVIRON array: Auto-set. (line 59)
* environment variables used by gawk: Environment Variables. * environment variables, POSIXLY_CORRECT: Options. (line 384)
* environment variables, used by gawk: Environment Variables.
(line 6) (line 6)
* environment variables, AWKPATH: AWKPATH Variable. (line 6)
* environment variables, AWKLIBPATH: AWKLIBPATH Variable. (line 6)
* environment variables, GAWK_READ_TIMEOUT: Read Timeout. (line 71)
* environment variables, GAWK_SOCK_RETRIES: Nonfatal. (line 53)
* environment variables, in ENVIRON array: Auto-set. (line 59) * environment variables, in ENVIRON array: Auto-set. (line 59)
* environment variables, LANGUAGE: Explaining gettext. (line 120)
* environment variables, GAWK_LOCALE_DIR: Explaining gettext. (line 132)
* environment variables, LANGUAGE <1>: I18N Example. (line 68)
* environment variables, LC_ALL: I18N Example. (line 68)
* environment variables, LANG: I18N Example. (line 68)
* environment variables, LC_MESSAGES: I18N Example. (line 68)
* environment variables, AWKPATH <1>: PC Using. (line 13)
* epoch, definition of: Glossary. (line 310) * epoch, definition of: Glossary. (line 310)
* equals sign (=), = operator: Assignment Ops. (line 6) * equals sign (=), = operator: Assignment Ops. (line 6)
* equals sign (=), == operator: Comparison Operators. * equals sign (=), == operator: Comparison Operators.
(line 11) (line 11)
* equals sign (=), == operator <1>: Precedence. (line 64) * equals sign (=), == operator <1>: Precedence. (line 64)
* EREs (Extended Regular Expressions): Bracket Expressions. (line 34) * EREs (Extended Regular Expressions): Bracket Expressions. (line 34)
* ERRNO variable: Auto-set. (line 87) * ERRNO variable, with getline command: Getline. (line 19)
* ERRNO variable <1>: TCP/IP Networking. (line 54)
* ERRNO variable, with BEGINFILE pattern: BEGINFILE/ENDFILE. (line 26)
* ERRNO variable, with close() function: Close Files And Pipes. * ERRNO variable, with close() function: Close Files And Pipes.
(line 140) (line 140)
* ERRNO variable, with getline command: Getline. (line 19) * ERRNO variable, with BEGINFILE pattern: BEGINFILE/ENDFILE. (line 26)
* ERRNO variable: Auto-set. (line 87)
* ERRNO variable <1>: TCP/IP Networking. (line 54)
* error handling: Special FD. (line 19) * error handling: Special FD. (line 19)
* error handling, ERRNO variable and: Auto-set. (line 87) * error handling, ERRNO variable and: Auto-set. (line 87)
* error output: Special FD. (line 6) * error output: Special FD. (line 6)
* escape processing, gsub()/gensub()/sub() functions: Gory Details. * escape processing, gsub()/gensub()/sub() functions: Gory Details.
(line 6) (line 6)
* escape sequences, in strings: Escape Sequences. (line 6) * escape sequences: Escape Sequences. (line 6)
* eval debugger command: Viewing And Changing Data. * eval debugger command: Viewing And Changing Data.
(line 23) (line 23)
* evaluate expressions, in debugger: Viewing And Changing Data. * evaluate expressions, in debugger: Viewing And Changing Data.
(line 23) (line 23)
* evaluation order: Increment Ops. (line 60)
* evaluation order, concatenation: Concatenation. (line 41) * evaluation order, concatenation: Concatenation. (line 41)
* evaluation order: Increment Ops. (line 60)
* evaluation order, functions: Calling Built-in. (line 30) * evaluation order, functions: Calling Built-in. (line 30)
* examining fields: Fields. (line 6) * examining fields: Fields. (line 6)
* example debugging session: Sample Debugging Session. * example debugging session: Sample Debugging Session.
(line 6) (line 6)
* exclamation point (!), ! operator: Boolean Ops. (line 69)
* exclamation point (!), ! operator <1>: Precedence. (line 51)
* exclamation point (!), ! operator <2>: Egrep Program. (line 174)
* exclamation point (!), != operator: Comparison Operators.
(line 11)
* exclamation point (!), != operator <1>: Precedence. (line 64)
* exclamation point (!), !~ operator: Regexp Usage. (line 19) * exclamation point (!), !~ operator: Regexp Usage. (line 19)
* exclamation point (!), !~ operator <1>: Computed Regexps. (line 6) * exclamation point (!), !~ operator <1>: Computed Regexps. (line 6)
* exclamation point (!), !~ operator <2>: Case-sensitivity. (line 26) * exclamation point (!), !~ operator <2>: Case-sensitivity. (line 26)
* exclamation point (!), !~ operator <3>: Regexp Constants. (line 6) * exclamation point (!), !~ operator <3>: Regexp Constants. (line 6)
* exclamation point (!), != operator: Comparison Operators.
(line 11)
* exclamation point (!), !~ operator <4>: Comparison Operators. * exclamation point (!), !~ operator <4>: Comparison Operators.
(line 11) (line 11)
* exclamation point (!), !~ operator <5>: Comparison Operators. * exclamation point (!), !~ operator <5>: Comparison Operators.
(line 98) (line 98)
* exclamation point (!), ! operator: Boolean Ops. (line 69)
* exclamation point (!), ! operator <1>: Precedence. (line 51)
* exclamation point (!), != operator <1>: Precedence. (line 64)
* exclamation point (!), !~ operator <6>: Precedence. (line 79) * exclamation point (!), !~ operator <6>: Precedence. (line 79)
* exclamation point (!), !~ operator <7>: Expression Patterns. * exclamation point (!), !~ operator <7>: Expression Patterns.
(line 24) (line 24)
* exclamation point (!), ! operator <2>: Egrep Program. (line 174)
* exit debugger command: Miscellaneous Debugger Commands. * exit debugger command: Miscellaneous Debugger Commands.
(line 64) (line 64)
* exit statement: Exit Statement. (line 6) * exit statement: Exit Statement. (line 6)
* exit status, of gawk: Exit Status. (line 6) * exit status, of gawk: Exit Status. (line 6)
* exit status, of gawk, on VMS: VMS Running. (line 28) * exit status, of gawk, on VMS: VMS Running. (line 28)
* exit the debugger: Miscellaneous Debugger Commands. * exit the debugger: Miscellaneous Debugger Commands.
(line 64) (line 64)
* exit the debugger <1>: Miscellaneous Debugger Commands. * exit the debugger <1>: Miscellaneous Debugger Commands.
(line 100) (line 100)
* exp: Numeric Functions. (line 19) * exp: Numeric Functions. (line 19)
* expand utility: Very Simple. (line 73) * expand utility: Very Simple. (line 73)
* Expat XML parser library: gawkextlib. (line 40) * Expat XML parser library: gawkextlib. (line 40)
* exponent: Numeric Functions. (line 19) * exponent: Numeric Functions. (line 19)
* expressions: Expressions. (line 6) * expressions: Expressions. (line 6)
* expressions, as patterns: Expression Patterns. (line 6)
* expressions, assignment: Assignment Ops. (line 6) * expressions, assignment: Assignment Ops. (line 6)
* expressions, Boolean: Boolean Ops. (line 6)
* expressions, comparison: Typing and Comparison. * expressions, comparison: Typing and Comparison.
(line 9) (line 9)
* expressions, Boolean: Boolean Ops. (line 6)
* expressions, conditional: Conditional Exp. (line 6) * expressions, conditional: Conditional Exp. (line 6)
* expressions, matching, See comparison expressions: Typing and Comparison.
(line 9)
* expressions, selecting: Conditional Exp. (line 6) * expressions, selecting: Conditional Exp. (line 6)
* expressions, as patterns: Expression Patterns. (line 6)
* Extended Regular Expressions (EREs): Bracket Expressions. (line 34) * Extended Regular Expressions (EREs): Bracket Expressions. (line 34)
* extension API, version number: Auto-set. (line 287)
* extension API, interaction with namespaces: Namespace And Features.
(line 22)
* extension API: Extension API Description. * extension API: Extension API Description.
(line 6) (line 6)
* extension API informational variables: Extension API Informational Variables. * extension API, version number <1>: Extension Versioning.
(line 6)
* extension API interaction with namespaces: Namespace And Features.
(line 22)
* extension API version: Extension Versioning.
(line 6) (line 6)
* extension API, version number: Auto-set. (line 287) * extension API, informational variables: Extension API Informational Variables.
* extension example: Extension Example. (line 6)
* extension registration: Registration Functions.
(line 6) (line 6)
* extension search path: Finding Extensions. (line 6) * extensions, loadable, loading, @load directive: Loading Shared Libraries.
* extensions distributed with gawk: Extension Samples. (line 6) (line 8)
* extensions, allocating memory: Memory Allocation Functions. * extensions, common, \x escape sequence: Escape Sequences. (line 61)
* extensions, common, RS as a regexp: gawk split records. (line 6)
* extensions, common, single character fields: Single Character Fields.
(line 6) (line 6)
* extensions, array manipulation in: Array Manipulation. (line 6)
* extensions, Brian Kernighan's awk: BTL. (line 6)
* extensions, Brian Kernighan's awk <1>: Common Extensions. (line 6)
* extensions, common, ** operator: Arithmetic Ops. (line 30)
* extensions, common, **= operator: Assignment Ops. (line 138)
* extensions, common, /dev/stderr special file: Special FD. (line 48)
* extensions, common, /dev/stdin special file: Special FD. (line 48) * extensions, common, /dev/stdin special file: Special FD. (line 48)
* extensions, common, /dev/stdout special file: Special FD. (line 48) * extensions, common, /dev/stdout special file: Special FD. (line 48)
* extensions, common, BINMODE variable: PC Using. (line 20) * extensions, common, /dev/stderr special file: Special FD. (line 48)
* extensions, common, ** operator: Arithmetic Ops. (line 30)
* extensions, common, **= operator: Assignment Ops. (line 138)
* extensions, common, delete to delete entire arrays: Delete. (line 39) * extensions, common, delete to delete entire arrays: Delete. (line 39)
* extensions, common, length() applied to an array: String Functions.
(line 207)
* extensions, common, fflush() function: I/O Functions. (line 43) * extensions, common, fflush() function: I/O Functions. (line 43)
* extensions, common, func keyword: Definition Syntax. (line 99) * extensions, common, func keyword: Definition Syntax. (line 99)
* extensions, common, length() applied to an array: String Functions. * extensions, loadable, allocating memory: Memory Allocation Functions.
(line 201)
* extensions, common, RS as a regexp: gawk split records. (line 6)
* extensions, common, single character fields: Single Character Fields.
(line 6) (line 6)
* extensions, common, \x escape sequence: Escape Sequences. (line 61) * extensions, loadable, registration: Registration Functions.
(line 6)
* extensions, loadable, array manipulation in: Array Manipulation.
(line 6)
* extensions, loadable, search path: Finding Extensions. (line 6)
* extensions, loadable, example: Extension Example. (line 6)
* extensions, loadable, distributed with gawk: Extension Samples.
(line 6)
* extensions, loadable, gawkextlib project: gawkextlib. (line 6)
* extensions, Brian Kernighan's awk: BTL. (line 6)
* extensions, in gawk, not in POSIX awk: POSIX/GNU. (line 6) * extensions, in gawk, not in POSIX awk: POSIX/GNU. (line 6)
* extensions, loading, @load directive: Loading Shared Libraries. * extensions, Brian Kernighan's awk <1>: Common Extensions. (line 6)
(line 8)
* extensions, mawk: Common Extensions. (line 6) * extensions, mawk: Common Extensions. (line 6)
* extensions, where to find: gawkextlib. (line 6) * extensions, common, BINMODE variable: PC Using. (line 20)
* extract.awk program: Extract Program. (line 79) * extract.awk program: Extract Program. (line 79)
* extraction, of marked strings (internationalization): String Extraction. * extraction, of marked strings (internationalization): String Extraction.
(line 6) (line 6)
* f debugger command (alias for frame): Execution Stack. (line 27) * f debugger command (alias for frame): Execution Stack. (line 27)
* false, logical: Truth Values. (line 6) * false, logical: Truth Values. (line 6)
* FDL (Free Documentation License): GNU Free Documentation License. * FDL (Free Documentation License): GNU Free Documentation License.
(line 8) (line 8)
* features, adding to gawk: Adding Code. (line 6)
* features, deprecated: Obsolete. (line 6) * features, deprecated: Obsolete. (line 6)
* features, undocumented: Undocumented. (line 6) * features, undocumented: Undocumented. (line 6)
* features, adding to gawk: Adding Code. (line 6)
* Fenlason, Jay: History. (line 30) * Fenlason, Jay: History. (line 30)
* Fenlason, Jay <1>: Contributors. (line 19) * Fenlason, Jay <1>: Contributors. (line 19)
* fflush: I/O Functions. (line 28) * fflush: I/O Functions. (line 28)
* field numbers: Nonconstant Fields. (line 6) * field numbers: Nonconstant Fields. (line 6)
* field operator $: Fields. (line 19) * field operator $: Fields. (line 19)
* field operators, dollar sign as: Fields. (line 19) * field operators, dollar sign as: Fields. (line 19)
* field separator, backslash (\) as: Command Line Field Separator. * field separator: Field Separators. (line 15)
(line 24) * field separator, choice of: Field Separators. (line 50)
* field separator, in multiline records: Multiple Line. (line 41) * field separator, regular expression as: Field Separators. (line 50)
* field separator, whitespace as: Default Field Splitting.
(line 6)
* field separator, FS variable and: Default Field Splitting.
(line 6)
* field separator, regular expression as <1>: Regexp Field Splitting.
(line 6)
* field separator, on command line: Command Line Field Separator. * field separator, on command line: Command Line Field Separator.
(line 6) (line 6)
* field separator, backslash (\) as: Command Line Field Separator.
(line 24)
* field separator, POSIX and: Full Line Fields. (line 16) * field separator, POSIX and: Full Line Fields. (line 16)
* field separators: Field Separators. (line 15) * field separator, in multiline records: Multiple Line. (line 41)
* field separators <1>: User-modified. (line 53) * field separator, FIELDWIDTHS variable and: User-modified. (line 37)
* field separators <2>: User-modified. (line 116) * field separator, FPAT variable and: User-modified. (line 46)
* field separators, choice of: Field Separators. (line 50) * field separator <1>: User-modified. (line 53)
* field separators, FIELDWIDTHS variable and: User-modified. (line 37) * field separator <2>: User-modified. (line 116)
* field separators, FPAT variable and: User-modified. (line 46) * field separator, spaces as: Cut Program. (line 103)
* field separators, regular expressions as: Field Separators. (line 50) * field separator <3>: Changing Fields. (line 64)
* field separators, regular expressions as <1>: Regexp Field Splitting.
(line 6)
* field separators, See Also OFS: Changing Fields. (line 64)
* field separators, spaces as: Cut Program. (line 103)
* field separators, whitespace as: Default Field Splitting.
(line 6)
* fields: Reading Files. (line 14) * fields: Reading Files. (line 14)
* fields <1>: Fields. (line 6) * fields <1>: Fields. (line 6)
* fields <2>: Basic High Level. (line 62)
* fields, adding: Changing Fields. (line 53)
* fields, changing contents of: Changing Fields. (line 6)
* fields, cutting: Cut Program. (line 6)
* fields, examining: Fields. (line 6) * fields, examining: Fields. (line 6)
* fields, number of: Fields. (line 33) * fields, number of: Fields. (line 33)
* fields, numbers: Nonconstant Fields. (line 6) * fields, numbers: Nonconstant Fields. (line 6)
* fields, printing: Print Examples. (line 20) * fields, changing contents of: Changing Fields. (line 6)
* fields, adding: Changing Fields. (line 53)
* fields, separating: Field Separators. (line 15) * fields, separating: Field Separators. (line 15)
* fields, separating <1>: Field Separators. (line 15) * fields, separating <1>: Field Separators. (line 15)
* fields, single-character: Single Character Fields. * fields, single-character: Single Character Fields.
(line 6) (line 6)
* fields, printing: Print Examples. (line 20)
* fields, cutting: Cut Program. (line 6)
* fields <2>: Basic High Level. (line 62)
* FIELDWIDTHS variable: Fixed width data. (line 17) * FIELDWIDTHS variable: Fixed width data. (line 17)
* FIELDWIDTHS variable <1>: User-modified. (line 37) * FIELDWIDTHS variable <1>: User-modified. (line 37)
* file descriptors: Special FD. (line 6) * file descriptors: Special FD. (line 6)
* file inclusion, @include directive: Include Files. (line 8) * file inclusion, @include directive: Include Files. (line 8)
* file names, assignments as: Ignoring Assigns. (line 6)
* file names, distinguishing: Auto-set. (line 55)
* file names, in compatibility mode: Special Caveats. (line 9)
* file names, standard streams in gawk: Special FD. (line 48) * file names, standard streams in gawk: Special FD. (line 48)
* file names, in compatibility mode: Special Caveats. (line 9)
* file names, distinguishing: Auto-set. (line 55)
* file names, assignments as: Ignoring Assigns. (line 6)
* FILENAME variable: Reading Files. (line 6) * FILENAME variable: Reading Files. (line 6)
* FILENAME variable <1>: Auto-set. (line 108)
* FILENAME variable, getline, setting with: Getline Notes. (line 19) * FILENAME variable, getline, setting with: Getline Notes. (line 19)
* files, .gmo: Explaining gettext. (line 42) * FILENAME variable <1>: Auto-set. (line 108)
* files, .gmo, specifying directory of: Explaining gettext. (line 54) * files, input: Read Terminal. (line 16)
* files, .gmo, specifying directory of <1>: Programmer i18n. (line 48)
* files, .mo, converting from .po: I18N Example. (line 80)
* files, .po: Explaining gettext. (line 37)
* files, .po <1>: Translator i18n. (line 6)
* files, .po, converting to .mo: I18N Example. (line 80)
* files, .pot: Explaining gettext. (line 31)
* files, /dev/... special files: Special FD. (line 48)
* files, /inet/... (gawk): TCP/IP Networking. (line 6)
* files, /inet4/... (gawk): TCP/IP Networking. (line 6)
* files, /inet6/... (gawk): TCP/IP Networking. (line 6)
* files, awk programs in: Long. (line 6) * files, awk programs in: Long. (line 6)
* files, awkprof.out: Profiling. (line 6)
* files, awkvars.out: Options. (line 98) * files, awkvars.out: Options. (line 98)
* files, portable object, generating: Options. (line 169)
* files, multiple passes over: Other Arguments. (line 64)
* files, reading, multiline records: Multiple Line. (line 6)
* files, descriptors: Special FD. (line 6)
* files, /dev/... special files: Special FD. (line 48)
* files, output: Close Files And Pipes.
(line 6)
* files, processing, ARGIND variable and: Auto-set. (line 50)
* files, closing: I/O Functions. (line 10) * files, closing: I/O Functions. (line 10)
* files, descriptors, See file descriptors: Special FD. (line 6)
* files, group: Group Functions. (line 6)
* files, initialization and cleanup: Filetrans Function. (line 6)
* files, input, See input files: Read Terminal. (line 16)
* files, log, timestamps in: Time Functions. (line 6) * files, log, timestamps in: Time Functions. (line 6)
* files, managing: Data File Management. * files, managing: Data File Management.
(line 6) (line 6)
* files, managing, data file boundaries: Filetrans Function. (line 6) * files, managing, data file boundaries: Filetrans Function. (line 6)
* files, initialization and cleanup: Filetrans Function. (line 6)
* files, reading: Rewind Function. (line 6)
* files, skipping: File Checking. (line 6)
* files, password: Passwd Functions. (line 16)
* files, group: Group Functions. (line 6)
* files, searching for regular expressions: Egrep Program. (line 6)
* files, splitting: Split Program. (line 6)
* files, multiple, duplicating output into: Tee Program. (line 6)
* files, Texinfo, extracting programs from: Extract Program. (line 6)
* files, source, search path for: Programs Exercises. (line 70)
* files, /inet/... (gawk): TCP/IP Networking. (line 6)
* files, /inet4/... (gawk): TCP/IP Networking. (line 6)
* files, /inet6/... (gawk): TCP/IP Networking. (line 6)
* files, awkprof.out: Profiling. (line 6)
* files, .pot: Explaining gettext. (line 31)
* files, portable object, template file (.pot): Explaining gettext.
(line 31)
* files, .po: Explaining gettext. (line 37)
* files, portable object: Explaining gettext. (line 37)
* files, .gmo: Explaining gettext. (line 42)
* files, message object: Explaining gettext. (line 42) * files, message object: Explaining gettext. (line 42)
* files, message object, converting from portable object files: I18N Example. * files, .gmo, specifying directory of: Explaining gettext. (line 54)
(line 80)
* files, message object, specifying directory of: Explaining gettext. * files, message object, specifying directory of: Explaining gettext.
(line 54) (line 54)
* files, .gmo, specifying directory of <1>: Programmer i18n. (line 48)
* files, message object, specifying directory of <1>: Programmer i18n. * files, message object, specifying directory of <1>: Programmer i18n.
(line 48) (line 48)
* files, multiple passes over: Other Arguments. (line 56) * files, .po <1>: Translator i18n. (line 6)
* files, multiple, duplicating output into: Tee Program. (line 6)
* files, output, See output files: Close Files And Pipes.
(line 6)
* files, password: Passwd Functions. (line 16)
* files, portable object: Explaining gettext. (line 37)
* files, portable object <1>: Translator i18n. (line 6) * files, portable object <1>: Translator i18n. (line 6)
* files, portable object template: Explaining gettext. (line 31) * files, .po, converting to .mo: I18N Example. (line 80)
* files, .mo, converting from .po: I18N Example. (line 80)
* files, portable object, converting to message object files: I18N Example. * files, portable object, converting to message object files: I18N Example.
(line 80) (line 80)
* files, portable object, generating: Options. (line 169) * files, message object, converting from portable object files: I18N Example.
* files, processing, ARGIND variable and: Auto-set. (line 50) (line 80)
* files, reading: Rewind Function. (line 6) * find substring in string: String Functions. (line 162)
* files, reading, multiline records: Multiple Line. (line 6)
* files, searching for regular expressions: Egrep Program. (line 6)
* files, skipping: File Checking. (line 6)
* files, source, search path for: Programs Exercises. (line 70)
* files, splitting: Split Program. (line 6)
* files, Texinfo, extracting programs from: Extract Program. (line 6)
* find substring in string: String Functions. (line 156)
* finding extensions: Finding Extensions. (line 6) * finding extensions: Finding Extensions. (line 6)
* finish debugger command: Debugger Execution Control. * finish debugger command: Debugger Execution Control.
(line 39) (line 39)
* Fish, Fred: Contributors. (line 51) * Fish, Fred: Contributors. (line 51)
* fixed-width data: Constant Size. (line 6) * fixed-width data: Constant Size. (line 6)
* flag variables: Boolean Ops. (line 69) * flag variables: Boolean Ops. (line 69)
* flag variables <1>: Tee Program. (line 20) * flag variables <1>: Tee Program. (line 20)
* floating-point, numbers: Computer Arithmetic. (line 49)
* floating-point, numbers, arbitrary-precision: Arbitrary Precision Arithmetic. * floating-point, numbers, arbitrary-precision: Arbitrary Precision Arithmetic.
(line 6) (line 6)
* floating-point, numbers, arbitrary-precision <1>: Computer Arithmetic. * floating-point, numbers: Computer Arithmetic. (line 49)
* floating-point, numbers, single-precision: Computer Arithmetic.
(line 61) (line 61)
* floating-point, numbers, double-precision: Computer Arithmetic. * floating-point, numbers, double-precision: Computer Arithmetic.
(line 61) (line 61)
* floating-point, numbers, single-precision: Computer Arithmetic. * floating-point, numbers, arbitrary-precision <1>: Computer Arithmetic.
(line 61) (line 61)
* floating-point, VAX/VMS: VMS Running. (line 50) * floating-point, numbers, VAX/VMS: VMS Running. (line 50)
* flush buffered output: I/O Functions. (line 28) * flush buffered output: I/O Functions. (line 28)
* fnmatch() extension function: Extension Sample Fnmatch. * fnmatch() extension function: Extension Sample Fnmatch.
(line 12) (line 12)
* FNR variable: Records. (line 6) * FNR variable: Records. (line 6)
* FNR variable <1>: Auto-set. (line 118) * FNR variable <1>: Auto-set. (line 118)
* FNR variable, changing: Auto-set. (line 409) * FNR variable, changing: Auto-set. (line 409)
* for statement: For Statement. (line 6) * for statement: For Statement. (line 6)
* for statement, looping over arrays: Scanning an Array. (line 20) * for statement, looping over arrays: Scanning an Array. (line 20)
* fork() extension function: Extension Sample Fork. * fork() extension function: Extension Sample Fork.
(line 11) (line 11)
* format specifiers: Basic Printf. (line 15) * format specifiers: Basic Printf. (line 15)
* format specifiers, mixing regular with positional specifiers: Printf Ordering.
(line 57)
* format specifiers, printf statement: Control Letters. (line 6) * format specifiers, printf statement: Control Letters. (line 6)
* format specifiers, strftime() function (gawk): Time Functions. * format specifiers, strftime() function (gawk): Time Functions.
(line 91) (line 91)
* format specifiers, mixing regular with positional specifiers: Printf Ordering.
(line 57)
* format time string: Time Functions. (line 50) * format time string: Time Functions. (line 50)
* formats, numeric output: OFMT. (line 6) * formats, numeric output: OFMT. (line 6)
* formatting output: Printf. (line 6) * formatting, output: Printf. (line 6)
* formatting strings: String Functions. (line 389) * formatting, strings: String Functions. (line 395)
* forward slash (/) to enclose regular expressions: Regexp. (line 10) * forward slash (/), to enclose regular expressions: Regexp. (line 10)
* forward slash (/), / operator: Precedence. (line 54)
* forward slash (/), /= operator: Assignment Ops. (line 129) * forward slash (/), /= operator: Assignment Ops. (line 129)
* forward slash (/), /= operator <1>: Precedence. (line 94) * forward slash (/), /= operator, vs. /=.../ regexp constant: Assignment Ops.
* forward slash (/), /= operator, vs. /=.../ regexp constant: Assignment Ops.
(line 149) (line 149)
* forward slash (/), / operator: Precedence. (line 54)
* forward slash (/), /= operator <1>: Precedence. (line 94)
* forward slash (/), patterns and: Expression Patterns. (line 24) * forward slash (/), patterns and: Expression Patterns. (line 24)
* FPAT variable: Splitting By Content. * FPAT variable: Splitting By Content.
(line 25) (line 29)
* FPAT variable <1>: User-modified. (line 46) * FPAT variable <1>: User-modified. (line 46)
* frame debugger command: Execution Stack. (line 27) * frame debugger command: Execution Stack. (line 27)
* Free Documentation License (FDL): GNU Free Documentation License. * Free Documentation License (FDL): GNU Free Documentation License.
(line 8) (line 8)
* Free Software Foundation (FSF): Manual History. (line 6) * Free Software Foundation (FSF): Manual History. (line 6)
* Free Software Foundation (FSF) <1>: Getting. (line 10) * Free Software Foundation (FSF) <1>: Getting. (line 10)
* Free Software Foundation (FSF) <2>: Glossary. (line 370) * Free Software Foundation (FSF) <2>: Glossary. (line 370)
* Free Software Foundation (FSF) <3>: Glossary. (line 403) * Free Software Foundation (FSF) <3>: Glossary. (line 403)
* FreeBSD: Glossary. (line 746) * FreeBSD: Glossary. (line 747)
* FS variable: Field Separators. (line 15)
* FS variable <1>: User-modified. (line 53)
* FS variable, --field-separator option and: Options. (line 21) * FS variable, --field-separator option and: Options. (line 21)
* FS variable, as null string: Single Character Fields. * FS variable, TAB character as: Options. (line 299)
(line 20) * FS variable: Field Separators. (line 15)
* FS variable, changing value of: Field Separators. (line 34) * FS variable, changing value of: Field Separators. (line 34)
* FS variable, running awk programs and: Cut Program. (line 63) * FS variable, containing ^: Regexp Field Splitting.
(line 59)
* FS variable, null string as: Single Character Fields.
(line 20)
* FS variable, setting from command line: Command Line Field Separator. * FS variable, setting from command line: Command Line Field Separator.
(line 6) (line 6)
* FS variable, TAB character as: Options. (line 292) * FS variable, in multiline records: Multiple Line. (line 41)
* FS, containing ^: Regexp Field Splitting. * FS variable <1>: User-modified. (line 53)
(line 59) * FS variable, running awk programs and: Cut Program. (line 63)
* FS, in multiline records: Multiple Line. (line 41)
* FSF (Free Software Foundation): Manual History. (line 6) * FSF (Free Software Foundation): Manual History. (line 6)
* FSF (Free Software Foundation) <1>: Getting. (line 10) * FSF (Free Software Foundation) <1>: Getting. (line 10)
* FSF (Free Software Foundation) <2>: Glossary. (line 370) * FSF (Free Software Foundation) <2>: Glossary. (line 370)
* FSF (Free Software Foundation) <3>: Glossary. (line 403) * FSF (Free Software Foundation) <3>: Glossary. (line 403)
* fts() extension function: Extension Sample File Functions. * fts() extension function: Extension Sample File Functions.
(line 60) (line 60)
* FUNCTAB array: Auto-set. (line 134) * FUNCTAB array: Auto-set. (line 134)
* function arguments, show in debugger: Debugger Info. (line 18)
* function calls: Function Calls. (line 6) * function calls: Function Calls. (line 6)
* function calls, indirect: Indirect Calls. (line 6) * function calls, indirect: Indirect Calls. (line 6)
* function calls, indirect, @-notation for: Indirect Calls. (line 47) * function calls, indirect, @-notation for: Indirect Calls. (line 47)
* function definition example: Function Example. (line 6) * function definition example: Function Example. (line 6)
* function definitions, list in debugger: Debugger Info. (line 30)
* function pointers: Indirect Calls. (line 6) * function pointers: Indirect Calls. (line 6)
* functions, arrays as parameters to: Pass By Value/Reference.
(line 44)
* functions, built-in: Function Calls. (line 10) * functions, built-in: Function Calls. (line 10)
* functions, user-defined, next/nextfile statements and: Next Statement.
(line 44)
* functions, user-defined, next/nextfile statements and <1>: Nextfile Statement.
(line 47)
* functions, built-in <1>: Functions. (line 6) * functions, built-in <1>: Functions. (line 6)
* functions, built-in, evaluation order: Calling Built-in. (line 30) * functions, built-in, evaluation order: Calling Built-in. (line 30)
* functions, string-translation: I18N Functions. (line 6)
* functions, user-defined: User-defined. (line 6)
* functions, defining: Definition Syntax. (line 10) * functions, defining: Definition Syntax. (line 10)
* functions, names of: Definition Syntax. (line 24)
* functions, recursive: Definition Syntax. (line 89)
* functions, user-defined, calling: Function Calling. (line 6)
* functions, arrays as parameters to: Pass By Value/Reference.
(line 44)
* functions, undefined: Function Caveats. (line 6)
* functions, library: Library Functions. (line 6) * functions, library: Library Functions. (line 6)
* functions, library, assertions: Assert Function. (line 6) * functions, user-defined, library of: Library Functions. (line 6)
* functions, library, associative arrays and: Library Names. (line 58) * functions, library, associative arrays and: Library Names. (line 58)
* functions, library, C library: Getopt Function. (line 6) * functions, library, assertions: Assert Function. (line 6)
* functions, library, character values as numbers: Ordinal Functions. * functions, library, rounding numbers: Round Function. (line 6)
(line 6)
* functions, library, Cliff random numbers: Cliff Random Function. * functions, library, Cliff random numbers: Cliff Random Function.
(line 6) (line 6)
* functions, library, command-line options: Getopt Function. (line 6) * functions, library, character values as numbers: Ordinal Functions.
* functions, library, example program for using: Igawk Program.
(line 6)
* functions, library, group database, reading: Group Functions.
(line 6) (line 6)
* functions, library, managing data files: Data File Management. * functions, library, merging arrays into strings: Join Function.
(line 6) (line 6)
* functions, library, managing time: Getlocaltime Function. * functions, library, managing time: Getlocaltime Function.
(line 6) (line 6)
* functions, library, merging arrays into strings: Join Function. * functions, library, managing data files: Data File Management.
(line 6) (line 6)
* functions, library, rounding numbers: Round Function. (line 6) * functions, library, command-line options: Getopt Function. (line 6)
* functions, library, C library: Getopt Function. (line 6)
* functions, library, user database, reading: Passwd Functions. * functions, library, user database, reading: Passwd Functions.
(line 6) (line 6)
* functions, names of: Definition Syntax. (line 24) * functions, library, group database, reading: Group Functions.
* functions, recursive: Definition Syntax. (line 89) (line 6)
* functions, string-translation: I18N Functions. (line 6) * functions, library, example program for using: Igawk Program.
* functions, undefined: Function Caveats. (line 6) (line 6)
* functions, user-defined: User-defined. (line 6)
* functions, user-defined, calling: Function Calling. (line 6)
* functions, user-defined, counts, in a profile: Profiling. (line 137) * functions, user-defined, counts, in a profile: Profiling. (line 137)
* functions, user-defined, library of: Library Functions. (line 6)
* functions, user-defined, next/nextfile statements and: Next Statement.
(line 44)
* functions, user-defined, next/nextfile statements and <1>: Nextfile Statement.
(line 47)
* G-d: Acknowledgments. (line 94) * G-d: Acknowledgments. (line 94)
* G., Daniel Richard: Acknowledgments. (line 60) * G., Daniel Richard: Acknowledgments. (line 60)
* G., Daniel Richard <1>: Maintainers. (line 14) * G., Daniel Richard <1>: Maintainers. (line 14)
* Garfinkle, Scott: Contributors. (line 35) * Garfinkle, Scott: Contributors. (line 35)
* gawk program, dynamic profiling: Profiling. (line 179) * gawk: Preface. (line 13)
* gawk version: Auto-set. (line 262)
* gawk, ARGIND variable in: Other Arguments. (line 15)
* gawk, awk and: Preface. (line 21) * gawk, awk and: Preface. (line 21)
* gawk, uses for: Preface. (line 34)
* gawk, awk and <1>: This Manual. (line 14) * gawk, awk and <1>: This Manual. (line 14)
* gawk, bitwise operations in: Bitwise Functions. (line 40) * gawk, newlines in: Statements/Lines. (line 12)
* gawk, break statement in: Break Statement. (line 51) * gawk, extensions, disabling: Options. (line 290)
* gawk, version of, printing information about: Options. (line 338)
* gawk, ARGIND variable in: Other Arguments. (line 21)
* gawk, PROCINFO array in: Other Arguments. (line 21)
* gawk, escape sequences: Escape Sequences. (line 121)
* gawk, escape sequences <1>: Escape Sequences. (line 121)
* gawk, regular expressions, precedence: Regexp Operator Details.
(line 142)
* gawk, interval expressions and: Interval Expressions.
(line 10)
* gawk, character classes and: Bracket Expressions. (line 112) * gawk, character classes and: Bracket Expressions. (line 112)
* gawk, coding style in: Adding Code. (line 37) * gawk, regular expressions, operators: GNU Regexp Operators.
* gawk, command-line options, and regular expressions: GNU Regexp Operators.
(line 73)
* gawk, configuring: Configuration Philosophy.
(line 6)
* gawk, configuring, options: Additional Configuration Options.
(line 6) (line 6)
* gawk, continue statement in: Continue Statement. (line 44) * gawk, word-boundary operator: GNU Regexp Operators.
* gawk, distribution: Distribution contents. (line 66)
* gawk, command-line options, regular expressions and: GNU Regexp Operators.
(line 73)
* gawk, regular expressions, case sensitivity: Case-sensitivity.
(line 26)
* gawk, IGNORECASE variable in: Case-sensitivity. (line 26)
* gawk, RT variable in: awk split records. (line 131)
* gawk, RT variable in <1>: gawk split records. (line 58)
* gawk, FIELDWIDTHS variable in: Fixed width data. (line 17)
* gawk, FPAT variable in: Splitting By Content.
(line 29)
* gawk, splitting fields and: Testing field creation.
(line 6) (line 6)
* gawk, RT variable in <2>: Multiple Line. (line 139)
* gawk, ERRNO variable in: Getline. (line 19) * gawk, ERRNO variable in: Getline. (line 19)
* gawk, implementation issues, limits: Getline Notes. (line 14)
* gawk, format-control characters: Control Letters. (line 33)
* gawk, format-control characters <1>: Control Letters. (line 108)
* gawk, implementation issues, pipes: Redirection. (line 129)
* gawk, file names in: Special Files. (line 6)
* gawk, ERRNO variable in <1>: Close Files And Pipes. * gawk, ERRNO variable in <1>: Close Files And Pipes.
(line 140) (line 140)
* gawk, octal numbers and: Nondecimal-numbers. (line 41)
* gawk, hexadecimal numbers and: Nondecimal-numbers. (line 41)
* gawk, regexp constants and: Standard Regexp Constants.
(line 28)
* gawk, line continuation in: Conditional Exp. (line 34)
* gawk, ERRNO variable in <2>: BEGINFILE/ENDFILE. (line 26) * gawk, ERRNO variable in <2>: BEGINFILE/ENDFILE. (line 26)
* gawk, ERRNO variable in <3>: Auto-set. (line 87) * gawk, break statement in: Break Statement. (line 51)
* gawk, ERRNO variable in <4>: TCP/IP Networking. (line 54) * gawk, continue statement in: Continue Statement. (line 44)
* gawk, escape sequences: Escape Sequences. (line 121) * gawk, predefined variables and: Built-in Variables. (line 14)
* gawk, extensions, disabling: Options. (line 283)
* gawk, features, adding: Adding Code. (line 6)
* gawk, features, advanced: Advanced Features. (line 6)
* gawk, field separators and: User-modified. (line 74)
* gawk, FIELDWIDTHS variable in: Fixed width data. (line 17)
* gawk, FIELDWIDTHS variable in <1>: User-modified. (line 37) * gawk, FIELDWIDTHS variable in <1>: User-modified. (line 37)
* gawk, file names in: Special Files. (line 6)
* gawk, format-control characters: Control Letters. (line 33)
* gawk, format-control characters <1>: Control Letters. (line 108)
* gawk, FPAT variable in: Splitting By Content.
(line 25)
* gawk, FPAT variable in <1>: User-modified. (line 46) * gawk, FPAT variable in <1>: User-modified. (line 46)
* gawk, FUNCTAB array in: Auto-set. (line 134) * gawk, field separators and: User-modified. (line 74)
* gawk, function arguments and: Calling Built-in. (line 16)
* gawk, hexadecimal numbers and: Nondecimal-numbers. (line 41)
* gawk, IGNORECASE variable in: Case-sensitivity. (line 26)
* gawk, IGNORECASE variable in <1>: User-modified. (line 79) * gawk, IGNORECASE variable in <1>: User-modified. (line 79)
* gawk, LINT variable in: User-modified. (line 90)
* gawk, TEXTDOMAIN variable in: User-modified. (line 155)
* gawk, ERRNO variable in <3>: Auto-set. (line 87)
* gawk, FUNCTAB array in: Auto-set. (line 134)
* gawk, PROCINFO array in <1>: Auto-set. (line 148)
* gawk, version of: Auto-set. (line 262)
* gawk, RT variable in <3>: Auto-set. (line 348)
* gawk, SYMTAB array in: Auto-set. (line 352)
* gawk, IGNORECASE variable in <2>: Array Intro. (line 100) * gawk, IGNORECASE variable in <2>: Array Intro. (line 100)
* gawk, function arguments and: Calling Built-in. (line 16)
* gawk, IGNORECASE variable in <3>: String Functions. (line 58) * gawk, IGNORECASE variable in <3>: String Functions. (line 58)
* gawk, timestamps: Time Functions. (line 6)
* gawk, PROCINFO array in <2>: Time Functions. (line 49)
* gawk, bitwise operations in: Bitwise Functions. (line 40)
* gawk, string-translation functions: I18N Functions. (line 6)
* gawk, features, advanced: Advanced Features. (line 6)
* gawk, IGNORECASE variable in <4>: Array Sorting Functions. * gawk, IGNORECASE variable in <4>: Array Sorting Functions.
(line 83) (line 83)
* gawk, implementation issues: Notes. (line 6) * gawk, PROCINFO array in <3>: Two-way I/O. (line 114)
* gawk, implementation issues, debugging: Compatibility Mode. (line 6) * gawk, ERRNO variable in <4>: TCP/IP Networking. (line 54)
* gawk, implementation issues, downward compatibility: Compatibility Mode. * gawk, dynamic profiling: Profiling. (line 179)
(line 6) * gawk, profiling programs: Profiling. (line 179)
* gawk, implementation issues, limits: Getline Notes. (line 14) * gawk, internationalization: Internationalization.
* gawk, implementation issues, pipes: Redirection. (line 129)
* gawk, installing: Installation. (line 6)
* gawk, internationalization and, See internationalization: Internationalization
.
(line 13) (line 13)
* gawk, interpreter, adding code to: Using Internal File Ops. * gawk, interpreter, adding code to: Using Internal File Ops.
(line 6) (line 6)
* gawk, interval expressions and: Interval Expressions.
(line 10)
* gawk, line continuation in: Conditional Exp. (line 34)
* gawk, LINT variable in: User-modified. (line 90)
* gawk, list of contributors to: Contributors. (line 6) * gawk, list of contributors to: Contributors. (line 6)
* gawk, MS-Windows version of: PC Using. (line 13) * gawk, installing: Installation. (line 6)
* gawk, newlines in: Statements/Lines. (line 12)
* gawk, octal numbers and: Nondecimal-numbers. (line 41)
* gawk, predefined variables and: Built-in Variables. (line 14)
* gawk, PROCINFO array in: Auto-set. (line 148)
* gawk, PROCINFO array in <1>: Time Functions. (line 49)
* gawk, PROCINFO array in <2>: Two-way I/O. (line 114)
* gawk, regexp constants and: Standard Regexp Constants.
(line 28)
* gawk, regular expressions, case sensitivity: Case-sensitivity.
(line 26)
* gawk, regular expressions, operators: GNU Regexp Operators.
(line 6)
* gawk, regular expressions, precedence: Regexp Operator Details.
(line 142)
* gawk, RT variable in: awk split records. (line 131)
* gawk, RT variable in <1>: gawk split records. (line 58)
* gawk, RT variable in <2>: Multiple Line. (line 139)
* gawk, RT variable in <3>: Auto-set. (line 348)
* gawk, See Also awk: Preface. (line 34)
* gawk, source code, obtaining: Getting. (line 6) * gawk, source code, obtaining: Getting. (line 6)
* gawk, splitting fields and: Testing field creation. * gawk, distribution: Distribution contents.
(line 6) (line 6)
* gawk, string-translation functions: I18N Functions. (line 6) * gawk, configuring, options: Additional Configuration Options.
* gawk, SYMTAB array in: Auto-set. (line 352) (line 6)
* gawk, TEXTDOMAIN variable in: User-modified. (line 155) * gawk, configuring: Configuration Philosophy.
* gawk, timestamps: Time Functions. (line 6) (line 6)
* gawk, uses for: Preface. (line 34) * gawk, MS-Windows version of: PC Using. (line 13)
* gawk, versions of, information about, printing: Options. (line 331)
* gawk, VMS version of: VMS Installation. (line 6) * gawk, VMS version of: VMS Installation. (line 6)
* gawk, word-boundary operator: GNU Regexp Operators. * gawk, implementation issues: Notes. (line 6)
(line 66) * gawk, implementation issues, downward compatibility: Compatibility Mode.
* gawkextlib: gawkextlib. (line 6) (line 6)
* gawk, implementation issues, debugging: Compatibility Mode. (line 6)
* gawk, features, adding: Adding Code. (line 6)
* gawk, coding style in: Adding Code. (line 37)
* gawk <1>: Preface. (line 34)
* gawkextlib project: gawkextlib. (line 6) * gawkextlib project: gawkextlib. (line 6)
* gawklibpath_append shell function: Shell Startup Files. (line 29) * gawklibpath_append shell function: Shell Startup Files. (line 29)
* gawklibpath_default shell function: Shell Startup Files. (line 22) * gawklibpath_default shell function: Shell Startup Files. (line 22)
* gawklibpath_prepend shell function: Shell Startup Files. (line 25) * gawklibpath_prepend shell function: Shell Startup Files. (line 25)
* gawkpath_append shell function: Shell Startup Files. (line 19) * gawkpath_append shell function: Shell Startup Files. (line 19)
* gawkpath_default shell function: Shell Startup Files. (line 12) * gawkpath_default shell function: Shell Startup Files. (line 12)
* gawkpath_prepend shell function: Shell Startup Files. (line 15) * gawkpath_prepend shell function: Shell Startup Files. (line 15)
* General Public License (GPL): Glossary. (line 394) * GAWK_LOCALE_DIR environment variable: Explaining gettext. (line 132)
* General Public License, See GPL: Manual History. (line 11) * GAWK_READ_TIMEOUT environment variable: Read Timeout. (line 71)
* GAWK_SOCK_RETRIES environment variable: Nonfatal. (line 53)
* generate time values: Time Functions. (line 25) * generate time values: Time Functions. (line 25)
* gensub: Standard Regexp Constants. * gensub: Standard Regexp Constants.
(line 43) (line 43)
* gensub <1>: String Functions. (line 89) * gensub <1>: String Functions. (line 95)
* gensub() function (gawk), escape processing: Gory Details. (line 6) * gensub() function (gawk), escape processing: Gory Details. (line 6)
* getaddrinfo() function (C library): TCP/IP Networking. (line 39) * getaddrinfo() function (C library): TCP/IP Networking. (line 39)
* getgrent() function (C library): Group Functions. (line 6) * getgrent() function (C library): Group Functions. (line 6)
* getgrent() function (C library) <1>: Group Functions. (line 202) * getgrent() function (C library) <1>: Group Functions. (line 202)
* getgrent() user-defined function: Group Functions. (line 6) * getgrent() user-defined function: Group Functions. (line 6)
* getgrent() user-defined function <1>: Group Functions. (line 205) * getgrent() user-defined function <1>: Group Functions. (line 205)
* getgrgid() function (C library): Group Functions. (line 184) * getgrgid() function (C library): Group Functions. (line 184)
* getgrgid() user-defined function: Group Functions. (line 187) * getgrgid() user-defined function: Group Functions. (line 187)
* getgrnam() function (C library): Group Functions. (line 173) * getgrnam() function (C library): Group Functions. (line 173)
* getgrnam() user-defined function: Group Functions. (line 178) * getgrnam() user-defined function: Group Functions. (line 178)
* getgruser() function (C library): Group Functions. (line 193) * getgruser() function (C library): Group Functions. (line 193)
* getgruser() function, user-defined: Group Functions. (line 196) * getgruser() user-defined function: Group Functions. (line 196)
* getline command: Reading Files. (line 20) * getline command: Reading Files. (line 20)
* getline command, explicit input with: Getline. (line 6)
* getline command, return values: Getline. (line 19)
* getline command, into a variable: Getline/Variable. (line 6)
* getline command, from a file: Getline/File. (line 6)
* getline command, coprocesses, using from: Getline/Coprocess. * getline command, coprocesses, using from: Getline/Coprocess.
(line 6) (line 6)
* getline command, coprocesses, using from <1>: Close Files And Pipes.
(line 6)
* getline command, deadlock and: Two-way I/O. (line 53)
* getline command, explicit input with: Getline. (line 6)
* getline command, FILENAME variable and: Getline Notes. (line 19) * getline command, FILENAME variable and: Getline Notes. (line 19)
* getline command, return values: Getline. (line 19)
* getline command, variants: Getline Summary. (line 6) * getline command, variants: Getline Summary. (line 6)
* getline command, coprocesses, using from <1>: Close Files And Pipes.
(line 6)
* getline command, BEGINFILE/ENDFILE patterns and: BEGINFILE/ENDFILE.
(line 54)
* getline command, _pw_init() function: Passwd Functions. (line 154)
* getline command, _gr_init() user-defined function: Group Functions. * getline command, _gr_init() user-defined function: Group Functions.
(line 83) (line 83)
* getline command, _pw_init() function: Passwd Functions. (line 154) * getline command, deadlock and: Two-way I/O. (line 53)
* getline from a file: Getline/File. (line 6)
* getline into a variable: Getline/Variable. (line 6)
* getline statement, BEGINFILE/ENDFILE patterns and: BEGINFILE/ENDFILE.
(line 54)
* getlocaltime() user-defined function: Getlocaltime Function. * getlocaltime() user-defined function: Getlocaltime Function.
(line 16) (line 16)
* getopt() function (C library): Getopt Function. (line 15) * getopt() function (C library): Getopt Function. (line 15)
* getopt() user-defined function: Getopt Function. (line 108) * getopt() user-defined function: Getopt Function. (line 116)
* getopt() user-defined function <1>: Getopt Function. (line 134) * getopt() user-defined function <1>: Getopt Function. (line 143)
* getpwent() function (C library): Passwd Functions. (line 16) * getpwent() function (C library): Passwd Functions. (line 16)
* getpwent() function (C library) <1>: Passwd Functions. (line 196) * getpwent() function (C library) <1>: Passwd Functions. (line 196)
* getpwent() user-defined function: Passwd Functions. (line 16) * getpwent() user-defined function: Passwd Functions. (line 16)
* getpwent() user-defined function <1>: Passwd Functions. (line 200) * getpwent() user-defined function <1>: Passwd Functions. (line 200)
* getpwnam() function (C library): Passwd Functions. (line 175) * getpwnam() function (C library): Passwd Functions. (line 175)
* getpwnam() user-defined function: Passwd Functions. (line 180) * getpwnam() user-defined function: Passwd Functions. (line 180)
* getpwuid() function (C library): Passwd Functions. (line 186) * getpwuid() function (C library): Passwd Functions. (line 186)
* getpwuid() user-defined function: Passwd Functions. (line 190) * getpwuid() user-defined function: Passwd Functions. (line 190)
* gettext library: Explaining gettext. (line 6) * gettext library: Explaining gettext. (line 6)
* gettext library, locale categories: Explaining gettext. (line 81) * gettext library, locale categories: Explaining gettext. (line 81)
* gettext() function (C library): Explaining gettext. (line 63) * gettext() function (C library): Explaining gettext. (line 63)
* gettimeofday() extension function: Extension Sample Time. * gettimeofday() extension function: Extension Sample Time.
(line 12) (line 21)
* git utility: gawkextlib. (line 31) * git utility: gawkextlib. (line 31)
* git utility <1>: Other Versions. (line 18) * git utility <1>: Other Versions. (line 18)
* git utility <2>: Accessing The Source. * git utility <2>: Accessing The Source.
(line 10) (line 10)
* git utility <3>: Adding Code. (line 112) * git utility <3>: Adding Code. (line 112)
* Git, use of for gawk source code: Derived Files. (line 6) * Git, use of for gawk source code: Derived Files. (line 6)
* global variables, show in debugger: Debugger Info. (line 48)
* GNITS mailing list: Acknowledgments. (line 52) * GNITS mailing list: Acknowledgments. (line 52)
* GNU awk, See gawk: Preface. (line 51) * GNU awk: Preface. (line 51)
* GNU Free Documentation License: GNU Free Documentation License. * GNU Free Documentation License: GNU Free Documentation License.
(line 8) (line 8)
* GNU General Public License: Glossary. (line 394)
* GNU Lesser General Public License: Glossary. (line 489) * GNU Lesser General Public License: Glossary. (line 489)
* GNU long options: Command Line. (line 13) * GNU long options: Command Line. (line 13)
* GNU long options <1>: Options. (line 6) * GNU long options <1>: Options. (line 6)
* GNU long options, printing list of: Options. (line 176) * GNU long options, printing list of: Options. (line 176)
* GNU Project: Manual History. (line 11) * GNU Project: Manual History. (line 11)
* GNU Project <1>: Glossary. (line 403) * GNU Project <1>: Glossary. (line 403)
* GNU/Linux: Manual History. (line 28) * GNU/Linux: Manual History. (line 28)
* GNU/Linux <1>: I18N Example. (line 57) * GNU/Linux <1>: I18N Example. (line 57)
* GNU/Linux <2>: Glossary. (line 746) * GNU/Linux <2>: Glossary. (line 747)
* Go implementation of awk: Other Versions. (line 113) * Go implementation of awk: Other Versions. (line 113)
* goawk: Other Versions. (line 113) * goawk: Other Versions. (line 113)
* Gordon, Assaf: Contributors. (line 108) * Gordon, Assaf: Contributors. (line 108)
* GPL (General Public License): Manual History. (line 11) * GPL (General Public License): Manual History. (line 11)
* GPL (General Public License) <1>: Glossary. (line 394)
* GPL (General Public License), printing: Options. (line 93) * GPL (General Public License), printing: Options. (line 93)
* GPL (General Public License) <1>: Glossary. (line 394)
* grcat program: Group Functions. (line 16) * grcat program: Group Functions. (line 16)
* Grigera, Juan: Contributors. (line 58) * Grigera, Juan: Contributors. (line 58)
* group database, reading: Group Functions. (line 6) * group database, reading: Group Functions. (line 6)
* group file: Group Functions. (line 6) * group file: Group Functions. (line 6)
* group ID of gawk user: Auto-set. (line 190) * group ID of gawk user: Auto-set. (line 190)
* groups, information about: Group Functions. (line 6) * groups, information about: Group Functions. (line 6)
* gsub: Standard Regexp Constants. * gsub: Standard Regexp Constants.
(line 43) (line 43)
* gsub <1>: String Functions. (line 140) * gsub <1>: String Functions. (line 146)
* gsub() function, arguments of: String Functions. (line 468) * gsub() function, arguments of: String Functions. (line 474)
* gsub() function, escape processing: Gory Details. (line 6) * gsub() function, escape processing: Gory Details. (line 6)
* Guerrero, Juan Manuel: Acknowledgments. (line 60) * Guerrero, Juan Manuel: Acknowledgments. (line 60)
* Guerrero, Juan Manuel <1>: Contributors. (line 150) * Guerrero, Juan Manuel <1>: Contributors. (line 150)
* Guerrero, Juan Manuel <2>: Maintainers. (line 14) * Guerrero, Juan Manuel <2>: Maintainers. (line 14)
* h debugger command (alias for help): Miscellaneous Debugger Commands. * h debugger command (alias for help): Miscellaneous Debugger Commands.
(line 67) (line 67)
* Hankerson, Darrel: Acknowledgments. (line 60) * Hankerson, Darrel: Acknowledgments. (line 60)
* Hankerson, Darrel <1>: Contributors. (line 61) * Hankerson, Darrel <1>: Contributors. (line 61)
* Haque, John: Contributors. (line 111) * Haque, John: Contributors. (line 111)
* Hartholz, Elaine: Acknowledgments. (line 38)
* Hartholz, Marshall: Acknowledgments. (line 38) * Hartholz, Marshall: Acknowledgments. (line 38)
* Hartholz, Elaine: Acknowledgments. (line 38)
* Hasegawa, Isamu: Contributors. (line 97) * Hasegawa, Isamu: Contributors. (line 97)
* help debugger command: Miscellaneous Debugger Commands. * help debugger command: Miscellaneous Debugger Commands.
(line 67) (line 67)
* hexadecimal numbers: Nondecimal-numbers. (line 6) * hexadecimal numbers: Nondecimal-numbers. (line 6)
* hexadecimal values, enabling interpretation of: Options. (line 236) * hexadecimal values, enabling interpretation of: Options. (line 243)
* history expansion, in debugger: Readline Support. (line 6) * history expansion, in debugger: Readline Support. (line 6)
* histsort.awk program: History Sorting. (line 25) * histsort.awk program: History Sorting. (line 25)
* Hughes, Phil: Acknowledgments. (line 43) * Hughes, Phil: Acknowledgments. (line 43)
* HUP signal, for dynamic profiling: Profiling. (line 211) * HUP signal, for dynamic profiling: Profiling. (line 211)
* hyphen (-), - operator: Precedence. (line 51) * hyphen (-), file names beginning with: Options. (line 64)
* hyphen (-), - operator <1>: Precedence. (line 57) * hyphen (-), -- end of options marker: Options. (line 343)
* hyphen (-), in bracket expressions: Bracket Expressions. (line 25)
* hyphen (-), -= operator: Assignment Ops. (line 129)
* hyphen (-), -- operator: Increment Ops. (line 48) * hyphen (-), -- operator: Increment Ops. (line 48)
* hyphen (-), -- operator <1>: Precedence. (line 45) * hyphen (-), -- operator <1>: Precedence. (line 45)
* hyphen (-), -= operator: Assignment Ops. (line 129) * hyphen (-), - operator: Precedence. (line 51)
* hyphen (-), - operator <1>: Precedence. (line 57)
* hyphen (-), -= operator <1>: Precedence. (line 94) * hyphen (-), -= operator <1>: Precedence. (line 94)
* hyphen (-), file names beginning with: Options. (line 64)
* hyphen (-), in bracket expressions: Bracket Expressions. (line 25)
* i debugger command (alias for info): Debugger Info. (line 13) * i debugger command (alias for info): Debugger Info. (line 13)
* id utility: Id Program. (line 6) * id utility: Id Program. (line 6)
* id.awk program: Id Program. (line 31) * id.awk program: Id Program. (line 31)
* if statement: If Statement. (line 6)
* if statement, actions, changing: Ranges. (line 25)
* if statement, use of regexps in: Regexp Usage. (line 19) * if statement, use of regexps in: Regexp Usage. (line 19)
* if statement, actions, changing: Ranges. (line 25)
* if statement: If Statement. (line 6)
* igawk.sh program: Igawk Program. (line 124) * igawk.sh program: Igawk Program. (line 124)
* ignore breakpoint: Breakpoint Control. (line 87) * ignore breakpoint: Breakpoint Control. (line 87)
* ignore debugger command: Breakpoint Control. (line 87) * ignore debugger command: Breakpoint Control. (line 87)
* IGNORECASE variable, with ~ and !~ operators: Case-sensitivity.
(line 26)
* IGNORECASE variable: User-modified. (line 79) * IGNORECASE variable: User-modified. (line 79)
* IGNORECASE variable, array indices and: Array Intro. (line 100) * IGNORECASE variable, array indices and: Array Intro. (line 100)
* IGNORECASE variable, array sorting functions and: Array Sorting Functions.
(line 83)
* IGNORECASE variable, in example programs: Library Functions. * IGNORECASE variable, in example programs: Library Functions.
(line 53) (line 53)
* IGNORECASE variable, with ~ and !~ operators: Case-sensitivity. * IGNORECASE variable, array sorting functions and: Array Sorting Functions.
(line 26) (line 83)
* Illumos: Other Versions. (line 105)
* Illumos, POSIX-compliant awk: Other Versions. (line 105) * Illumos, POSIX-compliant awk: Other Versions. (line 105)
* implementation issues, gawk: Notes. (line 6)
* implementation issues, gawk, debugging: Compatibility Mode. (line 6)
* implementation issues, gawk, limits: Getline Notes. (line 14) * implementation issues, gawk, limits: Getline Notes. (line 14)
* implementation issues, gawk, limits <1>: Redirection. (line 129) * implementation issues, gawk, limits <1>: Redirection. (line 129)
* implementation issues, gawk: Notes. (line 6)
* implementation issues, gawk, debugging: Compatibility Mode. (line 6)
* implicit namespace: Changing The Namespace. * implicit namespace: Changing The Namespace.
(line 25) (line 25)
* in operator: Comparison Operators. * in operator: Comparison Operators.
(line 11) (line 11)
* in operator <1>: Precedence. (line 82) * in operator <1>: Precedence. (line 82)
* in operator <2>: For Statement. (line 75) * in operator <2>: For Statement. (line 75)
* in operator, index existence in multidimensional arrays: Multidimensional.
(line 41)
* in operator, order of array access: Scanning an Array. (line 48)
* in operator, testing if array element exists: Reference to Elements. * in operator, testing if array element exists: Reference to Elements.
(line 38) (line 38)
* in operator, use in loops: Scanning an Array. (line 17) * in operator, use in loops: Scanning an Array. (line 17)
* in operator, order of array access: Scanning an Array. (line 48)
* in operator, index existence in multidimensional arrays: Multidimensional.
(line 41)
* @include directive: Include Files. (line 8)
* including files, @include directive: Include Files. (line 8) * including files, @include directive: Include Files. (line 8)
* increment operators: Increment Ops. (line 6) * increment operators: Increment Ops. (line 6)
* index: String Functions. (line 156) * index: String Functions. (line 162)
* indexing arrays: Array Intro. (line 48) * indexing arrays: Array Intro. (line 48)
* indirect function calls: Indirect Calls. (line 6) * indirect function calls: Indirect Calls. (line 6)
* indirect function calls, @-notation: Indirect Calls. (line 47) * indirect function calls, @-notation: Indirect Calls. (line 47)
* infinite precision: Arbitrary Precision Arithmetic. * infinite precision: Arbitrary Precision Arithmetic.
(line 6) (line 6)
* info debugger command: Debugger Info. (line 13) * info debugger command: Debugger Info. (line 13)
* initialization, automatic: More Complex. (line 39) * initialization, automatic: More Complex. (line 39)
* inplace extension: Extension Sample Inplace. * inplace extension: Extension Sample Inplace.
(line 6) (line 6)
* input, standard: Read Terminal. (line 6)
* input, splitting into records: Records. (line 6)
* input, multiline records: Multiple Line. (line 6)
* input, explicit: Getline. (line 6)
* input, standard <1>: Special FD. (line 6)
* input, data, nondecimal: Nondecimal Data. (line 6)
* input files, running awk without: Read Terminal. (line 6)
* input files, running awk without <1>: Read Terminal. (line 16)
* input files, examples: Sample Data Files. (line 6)
* input files, variable assignments and: Other Arguments. (line 34)
* input files, reading: Reading Files. (line 6)
* input files: Reading Files. (line 6) * input files: Reading Files. (line 6)
* input files, closing: Close Files And Pipes. * input files, closing: Close Files And Pipes.
(line 6) (line 6)
* input files, counting elements in: Wc Program. (line 6) * input files, counting elements in: Wc Program. (line 6)
* input files, examples: Sample Data Files. (line 6)
* input files, reading: Reading Files. (line 6)
* input files, running awk without: Read Terminal. (line 6)
* input files, running awk without <1>: Read Terminal. (line 16)
* input files, variable assignments and: Other Arguments. (line 26)
* input pipeline: Getline/Pipe. (line 10) * input pipeline: Getline/Pipe. (line 10)
* input record, length of: String Functions. (line 178) * input record, length of: String Functions. (line 184)
* input redirection: Getline/File. (line 6) * input redirection: Getline/File. (line 6)
* input, data, nondecimal: Nondecimal Data. (line 6)
* input, explicit: Getline. (line 6)
* input, files, See input files: Multiple Line. (line 6)
* input, multiline records: Multiple Line. (line 6)
* input, splitting into records: Records. (line 6)
* input, standard: Read Terminal. (line 6)
* input, standard <1>: Special FD. (line 6)
* input/output functions: I/O Functions. (line 6)
* input/output, binary: User-modified. (line 15)
* input/output, from BEGIN and END: I/O And BEGIN/END. (line 6) * input/output, from BEGIN and END: I/O And BEGIN/END. (line 6)
* input/output, binary: User-modified. (line 15)
* input/output, functions: I/O Functions. (line 6)
* input/output, two-way: Two-way I/O. (line 27) * input/output, two-way: Two-way I/O. (line 27)
* insomnia, cure for: Alarm Program. (line 6) * insomnia, cure for: Alarm Program. (line 6)
* installation, VMS: VMS Installation. (line 6)
* installing gawk: Installation. (line 6) * installing gawk: Installation. (line 6)
* installing gawk, MS-Windows: PC Binary Installation.
(line 6)
* installing gawk, Cygwin: Cygwin. (line 21)
* installing gawk, VMS: VMS Installation. (line 6)
* instruction tracing, in debugger: Debugger Info. (line 90) * instruction tracing, in debugger: Debugger Info. (line 90)
* int: Numeric Functions. (line 24) * int: Numeric Functions. (line 24)
* INT signal (MS-Windows): Profiling. (line 214) * INT signal (MS-Windows): Profiling. (line 214)
* integer array indices: Numeric Array Subscripts. * integer array indices: Numeric Array Subscripts.
(line 31) (line 31)
* integers, unsigned: Computer Arithmetic. (line 41)
* integers, arbitrary precision: Arbitrary Precision Integers. * integers, arbitrary precision: Arbitrary Precision Integers.
(line 6) (line 6)
* integers, unsigned: Computer Arithmetic. (line 41)
* interacting with other programs: I/O Functions. (line 106) * interacting with other programs: I/O Functions. (line 106)
* internationalization: I18N Functions. (line 6) * internationalization, localization, character classes: Bracket Expressions.
* internationalization <1>: I18N and L10N. (line 6) (line 112)
* internationalization, localization: User-modified. (line 155) * internationalization, localization: User-modified. (line 155)
* internationalization: I18N Functions. (line 6)
* internationalization, localization <1>: Internationalization. * internationalization, localization <1>: Internationalization.
(line 13) (line 13)
* internationalization, localization, character classes: Bracket Expressions.
(line 112)
* internationalization, localization, gawk and: Internationalization. * internationalization, localization, gawk and: Internationalization.
(line 13) (line 13)
* internationalization <1>: I18N and L10N. (line 6)
* internationalization, localization <2>: I18N and L10N. (line 6)
* internationalization, localization, locale categories: Explaining gettext. * internationalization, localization, locale categories: Explaining gettext.
(line 81) (line 81)
* internationalization, localization, monetary information: Explaining gettext.
(line 104)
* internationalization, localization, currency symbols: Explaining gettext.
(line 104)
* internationalization, localization, marked strings: Programmer i18n. * internationalization, localization, marked strings: Programmer i18n.
(line 13) (line 13)
* internationalization, localization, portability and: I18N Portability. * internationalization, localization, portability and: I18N Portability.
(line 6) (line 6)
* internationalizing a program: Explaining gettext. (line 6) * internationalizing a program: Explaining gettext. (line 6)
* interpreted programs: Basic High Level. (line 13) * interpreted programs: Basic High Level. (line 13)
* interpreted programs <1>: Glossary. (line 443) * interpreted programs <1>: Glossary. (line 443)
* interval expressions, regexp operator: Regexp Operator Details. * interval expressions, regexp operator: Regexp Operator Details.
(line 118) (line 118)
* inventory-shipped file: Sample Data Files. (line 32) * inventory-shipped file: Sample Data Files. (line 32)
* invoke shell command: I/O Functions. (line 106) * invoke shell command: I/O Functions. (line 106)
* isarray: Type Functions. (line 11) * isarray: Type Functions. (line 11)
* ISO, ISO 8601 date and time standard: Time Functions. (line 186)
* ISO, ISO 8859-1 character set: Glossary. (line 194)
* ISO, ISO Latin-1 character set: Glossary. (line 194)
* ISO: Glossary. (line 454) * ISO: Glossary. (line 454)
* ISO 8859-1: Glossary. (line 194)
* ISO Latin-1: Glossary. (line 194)
* Jacobs, Andrew: Passwd Functions. (line 90) * Jacobs, Andrew: Passwd Functions. (line 90)
* Jaegermann, Michal: Acknowledgments. (line 60) * Jaegermann, Michal: Acknowledgments. (line 60)
* Jaegermann, Michal <1>: Contributors. (line 46) * Jaegermann, Michal <1>: Contributors. (line 46)
* Jannick: Contributors. (line 152)
* Java implementation of awk: Other Versions. (line 121) * Java implementation of awk: Other Versions. (line 121)
* Java programming language: Glossary. (line 466) * Java programming language: Glossary. (line 466)
* jawk: Other Versions. (line 121) * jawk: Other Versions. (line 121)
* jedi knights: Undocumented. (line 6) * jedi knights: Undocumented. (line 6)
* Johansen, Chris: Signature Program. (line 25) * Johansen, Chris: Signature Program. (line 25)
* join() user-defined function: Join Function. (line 18) * join() user-defined function: Join Function. (line 18)
* Kahrs, Ju"rgen: Acknowledgments. (line 60) * Kahrs, Jürgen: Acknowledgments. (line 60)
* Kahrs, Ju"rgen <1>: Contributors. (line 71) * Kahrs, Jürgen <1>: Contributors. (line 71)
* Kasal, Stepan: Acknowledgments. (line 60) * Kasal, Stepan: Acknowledgments. (line 60)
* Kenobi, Obi-Wan: Undocumented. (line 6) * Kenobi, Obi-Wan: Undocumented. (line 6)
* Kernighan, Brian: History. (line 17) * Kernighan, Brian: History. (line 17)
* Kernighan, Brian <1>: Conventions. (line 38) * Kernighan, Brian <1>: Conventions. (line 38)
* Kernighan, Brian <2>: Acknowledgments. (line 79) * Kernighan, Brian <2>: Acknowledgments. (line 79)
* Kernighan, Brian <3>: Getline/Pipe. (line 6) * Kernighan, Brian <3>: Getline/Pipe. (line 6)
* Kernighan, Brian <4>: Concatenation. (line 6) * Kernighan, Brian <4>: Concatenation. (line 6)
* Kernighan, Brian <5>: Library Functions. (line 12) * Kernighan, Brian <5>: Library Functions. (line 12)
* Kernighan, Brian <6>: BTL. (line 6) * Kernighan, Brian <6>: BTL. (line 6)
* Kernighan, Brian <7>: Contributors. (line 12) * Kernighan, Brian <7>: Contributors. (line 12)
* Kernighan, Brian <8>: Other Versions. (line 13) * Kernighan, Brian <8>: Other Versions. (line 13)
* Kernighan, Brian <9>: Basic Data Typing. (line 54) * Kernighan, Brian <9>: Basic Data Typing. (line 54)
* Kernighan, Brian <10>: Glossary. (line 204) * Kernighan, Brian <10>: Glossary. (line 204)
* kill command, dynamic profiling: Profiling. (line 188) * kill command, dynamic profiling: Profiling. (line 188)
* knights, jedi: Undocumented. (line 6) * knights, jedi: Undocumented. (line 6)
* Kwok, Conrad: Contributors. (line 35) * Kwok, Conrad: Contributors. (line 35)
* l debugger command (alias for list): Miscellaneous Debugger Commands. * l debugger command (alias for list): Miscellaneous Debugger Commands.
(line 73) (line 73)
* labels.awk program: Labels Program. (line 51) * labels.awk program: Labels Program. (line 51)
* LANG environment variable: I18N Example. (line 68)
* Langston, Peter: Advanced Features. (line 6) * Langston, Peter: Advanced Features. (line 6)
* LANGUAGE environment variable: Explaining gettext. (line 120) * LANGUAGE environment variable: Explaining gettext. (line 120)
* LANGUAGE environment variable <1>: I18N Example. (line 68)
* languages, data-driven: Basic High Level. (line 74) * languages, data-driven: Basic High Level. (line 74)
* LC_ALL environment variable: I18N Example. (line 68)
* LC_ALL locale category: Explaining gettext. (line 117) * LC_ALL locale category: Explaining gettext. (line 117)
* LC_COLLATE locale category: Explaining gettext. (line 94) * LC_COLLATE locale category: Explaining gettext. (line 94)
* LC_CTYPE locale category: Explaining gettext. (line 98) * LC_CTYPE locale category: Explaining gettext. (line 98)
* LC_MESSAGES environment variable: I18N Example. (line 68)
* LC_MESSAGES locale category: Explaining gettext. (line 88) * LC_MESSAGES locale category: Explaining gettext. (line 88)
* LC_MESSAGES locale category, bindtextdomain() function (gawk): Programmer i18n . * LC_MESSAGES locale category, bindtextdomain() function (gawk): Programmer i18n .
(line 103) (line 103)
* LC_MONETARY locale category: Explaining gettext. (line 104) * LC_MONETARY locale category: Explaining gettext. (line 104)
* LC_NUMERIC locale category: Explaining gettext. (line 108) * LC_NUMERIC locale category: Explaining gettext. (line 108)
* LC_TIME locale category: Explaining gettext. (line 112) * LC_TIME locale category: Explaining gettext. (line 112)
* left angle bracket (<), < operator (I/O): Getline/File. (line 6)
* left angle bracket (<), < operator: Comparison Operators. * left angle bracket (<), < operator: Comparison Operators.
(line 11) (line 11)
* left angle bracket (<), < operator <1>: Precedence. (line 64)
* left angle bracket (<), < operator (I/O): Getline/File. (line 6)
* left angle bracket (<), <= operator: Comparison Operators. * left angle bracket (<), <= operator: Comparison Operators.
(line 11) (line 11)
* left angle bracket (<), < operator <1>: Precedence. (line 64)
* left angle bracket (<), <= operator <1>: Precedence. (line 64) * left angle bracket (<), <= operator <1>: Precedence. (line 64)
* left shift: Bitwise Functions. (line 47)
* left shift, bitwise: Bitwise Functions. (line 32) * left shift, bitwise: Bitwise Functions. (line 32)
* leftmost longest match: Multiple Line. (line 26) * leftmost longest match: Multiple Line. (line 26)
* length: String Functions. (line 171) * length: String Functions. (line 177)
* length of input record: String Functions. (line 178) * length of input record: String Functions. (line 184)
* length of string: String Functions. (line 171) * length of string: String Functions. (line 177)
* Lesser General Public License (LGPL): Glossary. (line 489) * Lesser General Public License (LGPL): Glossary. (line 489)
* LGPL (Lesser General Public License): Glossary. (line 489) * LGPL (Lesser General Public License): Glossary. (line 489)
* libmawk: Other Versions. (line 129) * libmawk: Other Versions. (line 129)
* libraries of awk functions: Library Functions. (line 6) * libraries of awk functions: Library Functions. (line 6)
* libraries of awk functions, assertions: Assert Function. (line 6)
* libraries of awk functions, associative arrays and: Library Names. * libraries of awk functions, associative arrays and: Library Names.
(line 58) (line 58)
* libraries of awk functions, character values as numbers: Ordinal Functions. * libraries of awk functions, assertions: Assert Function. (line 6)
* libraries of awk functions, rounding numbers: Round Function.
(line 6) (line 6)
* libraries of awk functions, command-line options: Getopt Function. * libraries of awk functions, character values as numbers: Ordinal Functions.
(line 6) (line 6)
* libraries of awk functions, example program for using: Igawk Program. * libraries of awk functions, merging arrays into strings: Join Function.
(line 6) (line 6)
* libraries of awk functions, group database, reading: Group Functions. * libraries of awk functions, managing, time: Getlocaltime Function.
(line 6) (line 6)
* libraries of awk functions, managing, data files: Data File Management. * libraries of awk functions, managing, data files: Data File Management.
(line 6) (line 6)
* libraries of awk functions, managing, time: Getlocaltime Function. * libraries of awk functions, command-line options: Getopt Function.
(line 6) (line 6)
* libraries of awk functions, merging arrays into strings: Join Function. * libraries of awk functions, user database, reading: Passwd Functions.
(line 6) (line 6)
* libraries of awk functions, rounding numbers: Round Function. * libraries of awk functions, group database, reading: Group Functions.
(line 6) (line 6)
* libraries of awk functions, user database, reading: Passwd Functions. * libraries of awk functions, example program for using: Igawk Program.
(line 6) (line 6)
* line breaks: Statements/Lines. (line 6) * line breaks: Statements/Lines. (line 6)
* line continuations, with C shell: More Complex. (line 31)
* line continuations, in print statement: Print Examples. (line 75)
* line continuations: Boolean Ops. (line 64) * line continuations: Boolean Ops. (line 64)
* line continuations, gawk: Conditional Exp. (line 34) * line continuations, gawk: Conditional Exp. (line 34)
* line continuations, in print statement: Print Examples. (line 75)
* line continuations, with C shell: More Complex. (line 31)
* lines, blank, printing: Print. (line 22) * lines, blank, printing: Print. (line 22)
* lines, counting: Wc Program. (line 6)
* lines, duplicate, removing: History Sorting. (line 6)
* lines, matching ranges of: Ranges. (line 6) * lines, matching ranges of: Ranges. (line 6)
* lines, skipping between markers: Ranges. (line 43) * lines, skipping between markers: Ranges. (line 43)
* lint checking: User-modified. (line 90) * lines, counting: Wc Program. (line 6)
* lint checking, array elements: Delete. (line 34) * lines, duplicate, removing: History Sorting. (line 6)
* lint checking, array subscripts: Uninitialized Subscripts.
(line 43)
* lint checking, empty programs: Command Line. (line 16) * lint checking, empty programs: Command Line. (line 16)
* lint checking, issuing warnings: Options. (line 210) * lint checking, issuing warnings: Options. (line 210)
* lint checking, POSIXLY_CORRECT environment variable: Options. * lint checking, POSIXLY_CORRECT environment variable: Options.
(line 373) (line 384)
* lint checking: User-modified. (line 90)
* lint checking, array subscripts: Uninitialized Subscripts.
(line 43)
* lint checking, array subscripts <1>: Delete. (line 34)
* lint checking, undefined functions: Function Caveats. (line 23) * lint checking, undefined functions: Function Caveats. (line 23)
* LINT variable: User-modified. (line 90) * LINT variable: User-modified. (line 90)
* Linux: Manual History. (line 28)
* Linux <1>: I18N Example. (line 57)
* Linux <2>: Glossary. (line 746)
* list all global variables, in debugger: Debugger Info. (line 48) * list all global variables, in debugger: Debugger Info. (line 48)
* list debugger command: Miscellaneous Debugger Commands. * list debugger command: Miscellaneous Debugger Commands.
(line 73) (line 73)
* list function definitions, in debugger: Debugger Info. (line 30) * list function definitions, in debugger: Debugger Info. (line 30)
* @load directive: Loading Shared Libraries.
(line 8)
* loading extensions: Options. (line 198)
* loading extensions, @load directive: Loading Shared Libraries. * loading extensions, @load directive: Loading Shared Libraries.
(line 8) (line 8)
* loading, extensions: Options. (line 198)
* local variables, in a function: Variable Scope. (line 6) * local variables, in a function: Variable Scope. (line 6)
* local variables, show in debugger: Debugger Info. (line 34)
* locale categories: Explaining gettext. (line 81) * locale categories: Explaining gettext. (line 81)
* locale decimal point character: Options. (line 295) * locale decimal point character: Options. (line 302)
* locale, definition of: Locales. (line 6) * locale, definition of: Locales. (line 6)
* localization: I18N and L10N. (line 6)
* localization, See internationalization, localization: I18N and L10N.
(line 6)
* log: Numeric Functions. (line 29) * log: Numeric Functions. (line 29)
* log files, timestamps in: Time Functions. (line 6) * log files, timestamps in: Time Functions. (line 6)
* logarithm: Numeric Functions. (line 29) * logarithm: Numeric Functions. (line 29)
* logical false/true: Truth Values. (line 6) * logical false/true: Truth Values. (line 6)
* logical operators, See Boolean expressions: Boolean Ops. (line 6)
* login information: Passwd Functions. (line 16) * login information: Passwd Functions. (line 16)
* long options: Command Line. (line 13) * long options: Command Line. (line 13)
* loops: While Statement. (line 6) * loops: While Statement. (line 6)
* loops, break statement and: Break Statement. (line 6) * loops, while: While Statement. (line 6)
* loops, continue statements and: For Statement. (line 64)
* loops, count for header, in a profile: Profiling. (line 131)
* loops, do-while: Do Statement. (line 6) * loops, do-while: Do Statement. (line 6)
* loops, for, iterative: For Statement. (line 6)
* loops, continue statement and: For Statement. (line 64)
* loops, exiting: Break Statement. (line 6) * loops, exiting: Break Statement. (line 6)
* loops, break statement and: Break Statement. (line 6)
* loops, for, array scanning: Scanning an Array. (line 6) * loops, for, array scanning: Scanning an Array. (line 6)
* loops, for, iterative: For Statement. (line 6) * loops, count for header, in a profile: Profiling. (line 131)
* loops, See Also while statement: While Statement. (line 6) * loops <1>: While Statement. (line 6)
* loops, while: While Statement. (line 6)
* ls utility: More Complex. (line 15) * ls utility: More Complex. (line 15)
* lshift: Bitwise Functions. (line 47) * lshift: Bitwise Functions. (line 47)
* lvalues/rvalues: Assignment Ops. (line 31) * lvalues/rvalues: Assignment Ops. (line 31)
* mail-list file: Sample Data Files. (line 6) * mail-list file: Sample Data Files. (line 6)
* mailing labels, printing: Labels Program. (line 6) * mailing labels, printing: Labels Program. (line 6)
* mailing list, GNITS: Acknowledgments. (line 52) * mailing list, GNITS: Acknowledgments. (line 52)
* Malmberg, John: Acknowledgments. (line 60) * Malmberg, John: Acknowledgments. (line 60)
* Malmberg, John <1>: Contributors. (line 140) * Malmberg, John <1>: Contributors. (line 140)
* Malmberg, John <2>: Maintainers. (line 14) * Malmberg, John <2>: Maintainers. (line 14)
* mark parity: Ordinal Functions. (line 45) * mark parity: Ordinal Functions. (line 45)
* marked string extraction (internationalization): String Extraction. * marked string extraction (internationalization): String Extraction.
(line 6) (line 6)
* Marx, Groucho: Increment Ops. (line 60) * Marx, Groucho: Increment Ops. (line 60)
* match: String Functions. (line 211) * match: String Functions. (line 217)
* match regexp in string: String Functions. (line 211) * match regexp in string: String Functions. (line 217)
* match() function, RSTART/RLENGTH variables: String Functions. * match() function, RSTART/RLENGTH variables: String Functions.
(line 228) (line 234)
* matching, expressions, See comparison expressions: Typing and Comparison. * match() function, side effects: String Functions. (line 234)
(line 9)
* matching, leftmost longest: Multiple Line. (line 26) * matching, leftmost longest: Multiple Line. (line 26)
* matching, null strings: String Functions. (line 542) * matching, expressions: Typing and Comparison.
(line 9)
* matching, null strings: String Functions. (line 548)
* mawk utility: Escape Sequences. (line 121) * mawk utility: Escape Sequences. (line 121)
* mawk utility <1>: Getline/Pipe. (line 62) * mawk utility <1>: Getline/Pipe. (line 62)
* mawk utility <2>: Concatenation. (line 36) * mawk utility <2>: Concatenation. (line 36)
* mawk utility <3>: Nextfile Statement. (line 47) * mawk utility <3>: Nextfile Statement. (line 47)
* mawk utility <4>: Other Versions. (line 39) * mawk utility <4>: Other Versions. (line 39)
* maximum precision supported by MPFR library: Auto-set. (line 276) * maximum precision supported by MPFR library: Auto-set. (line 276)
* McIlroy, Doug: Glossary. (line 255) * McIlroy, Doug: Glossary. (line 255)
* McPhee, Patrick: Contributors. (line 103) * McPhee, Patrick T.J.: Contributors. (line 103)
* memory, allocating for extensions: Memory Allocation Functions. * memory, allocating for extensions: Memory Allocation Functions.
(line 6) (line 6)
* message object files: Explaining gettext. (line 42) * message object files: Explaining gettext. (line 42)
* message object files, converting from portable object files: I18N Example.
(line 80)
* message object files, specifying directory of: Explaining gettext. * message object files, specifying directory of: Explaining gettext.
(line 54) (line 54)
* message object files, specifying directory of <1>: Programmer i18n. * message object files, specifying directory of <1>: Programmer i18n.
(line 48) (line 48)
* message object files, converting from portable object files: I18N Example.
(line 80)
* messages from extensions: Printing Messages. (line 6) * messages from extensions: Printing Messages. (line 6)
* metacharacters in regular expressions: Regexp Operators. (line 6)
* metacharacters, escape sequences for: Escape Sequences. (line 140) * metacharacters, escape sequences for: Escape Sequences. (line 140)
* metacharacters, in regular expressions: Regexp Operators. (line 6)
* minimum precision required by MPFR library: Auto-set. (line 279) * minimum precision required by MPFR library: Auto-set. (line 279)
* mktime: Time Functions. (line 25) * mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6) * modifiers, in format specifiers: Format Modifiers. (line 6)
* module, definition of: Global Namespace. (line 18) * module, definition of: Global Namespace. (line 18)
* monetary information, localization: Explaining gettext. (line 104) * monetary information, localization: Explaining gettext. (line 104)
* Moore, Duncan: Getline Notes. (line 40) * Moore, Duncan: Getline Notes. (line 40)
* MPFR, checking availability of: Checking for MPFR. (line 6)
* MPFR, checking for: Checking for MPFR. (line 6) * MPFR, checking for: Checking for MPFR. (line 6)
* msgfmt utility: I18N Example. (line 80) * msgfmt utility: I18N Example. (line 80)
* multiple precision: Arbitrary Precision Arithmetic. * multiple precision: Arbitrary Precision Arithmetic.
(line 6) (line 6)
* multiple-line records: Multiple Line. (line 6) * multiple-line records: Multiple Line. (line 6)
* n debugger command (alias for next): Debugger Execution Control. * n debugger command (alias for next): Debugger Execution Control.
(line 43) (line 43)
* name management: Internal Name Management. * name management: Internal Name Management.
(line 6) (line 6)
* names, arrays/variables: Library Names. (line 6)
* names, functions: Definition Syntax. (line 24) * names, functions: Definition Syntax. (line 24)
* names, arrays/variables: Library Names. (line 6)
* names, functions <1>: Library Names. (line 6) * names, functions <1>: Library Names. (line 6)
* namespace issues: Library Names. (line 6)
* namespace issues, functions: Definition Syntax. (line 24)
* namespace names, naming rules: Naming Rules. (line 6)
* namespace, awk: Default Namespace. (line 6)
* namespace, default: Default Namespace. (line 6)
* namespace, definition of: Global Namespace. (line 6) * namespace, definition of: Global Namespace. (line 6)
* namespace, example code: Namespace Example. (line 6) * namespace, standard awk, global: Global Namespace. (line 6)
* namespace, default: Default Namespace. (line 6)
* namespace, awk: Default Namespace. (line 6)
* namespace, implicit: Changing The Namespace. * namespace, implicit: Changing The Namespace.
(line 25) (line 25)
* namespace, pushing and popping: Changing The Namespace. * namespace, pushing and popping: Changing The Namespace.
(line 29) (line 29)
* namespace, standard awk, global: Global Namespace. (line 6) * namespace, example code: Namespace Example. (line 6)
* namespaces, backwards compatibility: Namespace Summary. (line 28) * @namespace directive: Changing The Namespace.
(line 6)
* @namespace directive <1>: Changing The Namespace.
(line 37)
* namespaces, qualified names: Qualified Names. (line 6)
* namespaces, changing: Changing The Namespace. * namespaces, changing: Changing The Namespace.
(line 6) (line 6)
* namespaces, interaction with debugger: Namespace And Features. * namespaces, naming rules: Naming Rules. (line 6)
(line 17) * namespaces, interaction with, profiler: Namespace And Features.
* namespaces, interaction with extension API: Namespace And Features.
(line 22)
* namespaces, interaction with pretty printer: Namespace And Features.
(line 9) (line 9)
* namespaces, interaction with profiler: Namespace And Features. * namespaces, interaction with, pretty printer: Namespace And Features.
(line 9) (line 9)
* namespaces, qualified names: Qualified Names. (line 6) * namespaces, interaction with, debugger: Namespace And Features.
* naming rules, namespaces and component names: Naming Rules. (line 6) (line 17)
* namespaces, interaction with, extension API: Namespace And Features.
(line 22)
* namespaces, backwards compatibility: Namespace Summary. (line 28)
* naming issues, functions: Definition Syntax. (line 24)
* naming issues: Library Names. (line 6)
* naming rules, namespace and component names: Naming Rules. (line 6)
* Neacsu, Mircea: Other Versions. (line 132) * Neacsu, Mircea: Other Versions. (line 132)
* NetBSD: Glossary. (line 746) * NetBSD: Glossary. (line 747)
* networks, programming: TCP/IP Networking. (line 6)
* networks, support for: Special Network. (line 6) * networks, support for: Special Network. (line 6)
* networks, programming: TCP/IP Networking. (line 6)
* newlines: Statements/Lines. (line 6) * newlines: Statements/Lines. (line 6)
* newlines <1>: Options. (line 289) * newlines <1>: Options. (line 296)
* newlines <2>: Boolean Ops. (line 69)
* newlines, as record separators: awk split records. (line 12)
* newlines, in dynamic regexps: Computed Regexps. (line 60) * newlines, in dynamic regexps: Computed Regexps. (line 60)
* newlines, in regexp constants: Computed Regexps. (line 70) * newlines, in regexp constants: Computed Regexps. (line 70)
* newlines, as record separators: awk split records. (line 12)
* newlines, printing: Print Examples. (line 11) * newlines, printing: Print Examples. (line 11)
* newlines <2>: Boolean Ops. (line 69)
* newlines, separating statements in actions: Action Overview. * newlines, separating statements in actions: Action Overview.
(line 19) (line 19)
* newlines, separating statements in actions <1>: Statements. (line 10) * newlines, separating statements in actions <1>: Statements. (line 10)
* next debugger command: Debugger Execution Control. * next debugger command: Debugger Execution Control.
(line 43) (line 43)
* next file statement: Feature History. (line 168) * next file statement: Feature History. (line 168)
* next statement: Boolean Ops. (line 95) * next statement: Boolean Ops. (line 95)
* next statement <1>: Next Statement. (line 6)
* next statement, BEGIN/END patterns and: I/O And BEGIN/END. (line 36) * next statement, BEGIN/END patterns and: I/O And BEGIN/END. (line 36)
* next statement, BEGINFILE/ENDFILE patterns and: BEGINFILE/ENDFILE. * next statement, BEGINFILE/ENDFILE patterns and: BEGINFILE/ENDFILE.
(line 50) (line 50)
* next statement <1>: Next Statement. (line 6)
* next statement, user-defined functions and: Next Statement. (line 44) * next statement, user-defined functions and: Next Statement. (line 44)
* nextfile statement: Nextfile Statement. (line 6)
* nextfile statement, BEGIN/END patterns and: I/O And BEGIN/END. * nextfile statement, BEGIN/END patterns and: I/O And BEGIN/END.
(line 36) (line 36)
* nextfile statement, BEGINFILE/ENDFILE patterns and: BEGINFILE/ENDFILE. * nextfile statement, BEGINFILE/ENDFILE patterns and: BEGINFILE/ENDFILE.
(line 26) (line 26)
* nextfile statement: Nextfile Statement. (line 6)
* nextfile statement, user-defined functions and: Nextfile Statement. * nextfile statement, user-defined functions and: Nextfile Statement.
(line 47) (line 47)
* nexti debugger command: Debugger Execution Control. * nexti debugger command: Debugger Execution Control.
(line 49) (line 49)
* NF variable: Fields. (line 33) * NF variable: Fields. (line 33)
* NF variable <1>: Auto-set. (line 123)
* NF variable, decrementing: Changing Fields. (line 107) * NF variable, decrementing: Changing Fields. (line 107)
* NF variable <1>: Auto-set. (line 123)
* ni debugger command (alias for nexti): Debugger Execution Control. * ni debugger command (alias for nexti): Debugger Execution Control.
(line 49) (line 49)
* noassign.awk program: Ignoring Assigns. (line 15) * noassign.awk program: Ignoring Assigns. (line 15)
* non-existent array elements: Reference to Elements. * non-existent array elements: Reference to Elements.
(line 23) (line 23)
* not Boolean-logic operator: Boolean Ops. (line 6) * not Boolean-logic operator: Boolean Ops. (line 6)
* NR variable: Records. (line 6) * NR variable: Records. (line 6)
* NR variable <1>: Auto-set. (line 143) * NR variable <1>: Auto-set. (line 143)
* NR variable, changing: Auto-set. (line 409) * NR variable, changing: Auto-set. (line 409)
* null strings, in gawk arguments, quoting and: Quoting. (line 82)
* null strings: awk split records. (line 121) * null strings: awk split records. (line 121)
* null strings <1>: Regexp Field Splitting. * null strings <1>: Regexp Field Splitting.
(line 43) (line 43)
* null strings, converting numbers to strings: Strings And Numbers.
(line 21)
* null strings <2>: Truth Values. (line 6) * null strings <2>: Truth Values. (line 6)
* null strings <3>: Basic Data Typing. (line 26)
* null strings in gawk arguments, quoting and: Quoting. (line 82)
* null strings, as array subscripts: Uninitialized Subscripts. * null strings, as array subscripts: Uninitialized Subscripts.
(line 43) (line 43)
* null strings, converting numbers to strings: Strings And Numbers.
(line 21)
* null strings, deleting array elements and: Delete. (line 27) * null strings, deleting array elements and: Delete. (line 27)
* null strings, matching: String Functions. (line 542) * null strings, matching: String Functions. (line 548)
* number of array elements: String Functions. (line 201) * null strings <3>: Basic Data Typing. (line 26)
* number of array elements: String Functions. (line 207)
* number sign (#), #! (executable scripts): Executable Scripts. * number sign (#), #! (executable scripts): Executable Scripts.
(line 6) (line 6)
* number sign (#), commenting: Comments. (line 6) * number sign (#), commenting: Comments. (line 6)
* numbers, octal: Nondecimal-numbers. (line 6)
* numbers, hexadecimal: Nondecimal-numbers. (line 6)
* numbers, converting: Strings And Numbers. (line 6)
* numbers, converting, to strings: User-modified. (line 30)
* numbers, converting, to strings <1>: User-modified. (line 107)
* numbers, as array subscripts: Numeric Array Subscripts. * numbers, as array subscripts: Numeric Array Subscripts.
(line 6) (line 6)
* numbers, converting <1>: Bitwise Functions. (line 109)
* numbers, as string of bits: Bitwise Functions. (line 109) * numbers, as string of bits: Bitwise Functions. (line 109)
* numbers, as values of characters: Ordinal Functions. (line 6) * numbers, rounding: Round Function. (line 6)
* numbers, Cliff random: Cliff Random Function. * numbers, Cliff random: Cliff Random Function.
(line 6) (line 6)
* numbers, converting: Strings And Numbers. (line 6) * numbers, as values of characters: Ordinal Functions. (line 6)
* numbers, converting <1>: Bitwise Functions. (line 109)
* numbers, converting, to strings: User-modified. (line 30)
* numbers, converting, to strings <1>: User-modified. (line 107)
* numbers, hexadecimal: Nondecimal-numbers. (line 6)
* numbers, octal: Nondecimal-numbers. (line 6)
* numbers, rounding: Round Function. (line 6)
* numeric constants: Scalar Constants. (line 6)
* numeric functions: Numeric Functions. (line 6)
* numeric, output format: OFMT. (line 6) * numeric, output format: OFMT. (line 6)
* numeric, constants: Scalar Constants. (line 6)
* numeric, strings: Variable Typing. (line 67) * numeric, strings: Variable Typing. (line 67)
* numeric, functions: Numeric Functions. (line 6)
* o debugger command (alias for option): Debugger Info. (line 57) * o debugger command (alias for option): Debugger Info. (line 57)
* obsolete features: Obsolete. (line 6) * obsolete features: Obsolete. (line 6)
* octal numbers: Nondecimal-numbers. (line 6) * octal numbers: Nondecimal-numbers. (line 6)
* octal values, enabling interpretation of: Options. (line 236) * octal values, enabling interpretation of: Options. (line 243)
* OFMT variable: OFMT. (line 15) * OFMT variable: OFMT. (line 15)
* OFMT variable, POSIX awk and: OFMT. (line 27)
* OFMT variable <1>: Strings And Numbers. (line 56) * OFMT variable <1>: Strings And Numbers. (line 56)
* OFMT variable <2>: User-modified. (line 107) * OFMT variable <2>: User-modified. (line 107)
* OFMT variable, POSIX awk and: OFMT. (line 27)
* OFS variable: Changing Fields. (line 64) * OFS variable: Changing Fields. (line 64)
* OFS variable <1>: Output Separators. (line 6) * OFS variable <1>: Output Separators. (line 6)
* OFS variable <2>: User-modified. (line 116) * OFS variable <2>: User-modified. (line 116)
* OpenBSD: Glossary. (line 746) * OpenBSD: Glossary. (line 747)
* OpenSolaris: Other Versions. (line 96) * OpenSolaris: Other Versions. (line 96)
* operating systems, BSD-based: Manual History. (line 28) * operating systems, BSD-based: Manual History. (line 28)
* operating systems, PC, gawk on: PC Using. (line 6) * operating systems: Installation. (line 6)
* operating systems, PC, gawk on, installing: PC Installation. * operating systems, PC, gawk on, installing: PC Installation.
(line 6) (line 6)
* operating systems, PC, gawk on: PC Using. (line 6)
* operating systems, porting gawk to: New Ports. (line 6) * operating systems, porting gawk to: New Ports. (line 6)
* operating systems, See Also GNU/Linux, PC operating systems, Unix: Installatio
n.
(line 6)
* operations, bitwise: Bitwise Functions. (line 6) * operations, bitwise: Bitwise Functions. (line 6)
* operators, arithmetic: Arithmetic Ops. (line 6) * operators, string-matching: Regexp Usage. (line 19)
* operators, assignment: Assignment Ops. (line 6)
* operators, assignment <1>: Assignment Ops. (line 31)
* operators, assignment, evaluation order: Assignment Ops. (line 110)
* operators, Boolean, See Boolean expressions: Boolean Ops. (line 6)
* operators, decrement/increment: Increment Ops. (line 6)
* operators, GNU-specific: GNU Regexp Operators. * operators, GNU-specific: GNU Regexp Operators.
(line 6) (line 6)
* operators, string-matching, for buffers: GNU Regexp Operators.
(line 51)
* operators, word-boundary (gawk): GNU Regexp Operators.
(line 66)
* operators, input/output: Getline/File. (line 6) * operators, input/output: Getline/File. (line 6)
* operators, input/output <1>: Getline/Pipe. (line 10) * operators, input/output <1>: Getline/Pipe. (line 10)
* operators, input/output <2>: Getline/Coprocess. (line 6) * operators, input/output <2>: Getline/Coprocess. (line 6)
* operators, input/output <3>: Redirection. (line 22) * operators, input/output <3>: Redirection. (line 22)
* operators, input/output <4>: Redirection. (line 96) * operators, input/output <4>: Redirection. (line 96)
* operators, arithmetic: Arithmetic Ops. (line 6)
* operators, string: Concatenation. (line 9)
* operators, assignment: Assignment Ops. (line 6)
* operators, assignment <1>: Assignment Ops. (line 31)
* operators, assignment, evaluation order: Assignment Ops. (line 110)
* operators, decrement/increment: Increment Ops. (line 6)
* operators, precedence of: Increment Ops. (line 60)
* operators, comparison: Comparison Operators.
(line 6)
* operators, short-circuit: Boolean Ops. (line 59)
* operators, precedence of <1>: Precedence. (line 6)
* operators, input/output <5>: Precedence. (line 64) * operators, input/output <5>: Precedence. (line 64)
* operators, input/output <6>: Precedence. (line 64) * operators, input/output <6>: Precedence. (line 64)
* operators, input/output <7>: Precedence. (line 64) * operators, input/output <7>: Precedence. (line 64)
* operators, logical, See Boolean expressions: Boolean Ops. (line 6)
* operators, precedence: Precedence. (line 6)
* operators, precedence of: Increment Ops. (line 60)
* operators, relational, See operators, comparison: Typing and Comparison.
(line 9)
* operators, short-circuit: Boolean Ops. (line 59)
* operators, string: Concatenation. (line 9)
* operators, string-matching: Regexp Usage. (line 19)
* operators, string-matching, for buffers: GNU Regexp Operators.
(line 51)
* operators, word-boundary (gawk): GNU Regexp Operators.
(line 66)
* option debugger command: Debugger Info. (line 57) * option debugger command: Debugger Info. (line 57)
* options, command-line: Options. (line 6)
* options, command-line, end of: Options. (line 59)
* options, command-line, invoking awk: Command Line. (line 6) * options, command-line, invoking awk: Command Line. (line 6)
* options, command-line, processing: Getopt Function. (line 6)
* options, deprecated: Obsolete. (line 6)
* options, long: Command Line. (line 13) * options, long: Command Line. (line 13)
* options, command-line: Options. (line 6)
* options, long <1>: Options. (line 6) * options, long <1>: Options. (line 6)
* options, command-line, end of: Options. (line 59)
* options, printing list of: Options. (line 176) * options, printing list of: Options. (line 176)
* options, deprecated: Obsolete. (line 6)
* options, command-line, processing: Getopt Function. (line 6)
* or: Bitwise Functions. (line 50) * or: Bitwise Functions. (line 50)
* OR bitwise operation: Bitwise Functions. (line 6) * OR bitwise operation: Bitwise Functions. (line 6)
* or Boolean-logic operator: Boolean Ops. (line 6) * or Boolean-logic operator: Boolean Ops. (line 6)
* ord() extension function: Extension Sample Ord. * ord() extension function: Extension Sample Ord.
(line 12) (line 12)
* ord() user-defined function: Ordinal Functions. (line 16) * ord() user-defined function: Ordinal Functions. (line 16)
* order of evaluation, concatenation: Concatenation. (line 41) * order of evaluation, concatenation: Concatenation. (line 41)
* ORS variable: Output Separators. (line 20) * ORS variable: Output Separators. (line 20)
* ORS variable <1>: User-modified. (line 122) * ORS variable <1>: User-modified. (line 122)
* output field separator, See OFS variable: Changing Fields. (line 64) * output, records: Output Separators. (line 20)
* output record separator, See ORS variable: Output Separators.
(line 20)
* output redirection: Redirection. (line 6)
* output wrapper: Output Wrappers. (line 6)
* output, buffering: I/O Functions. (line 32)
* output, buffering <1>: I/O Functions. (line 168)
* output, duplicating into files: Tee Program. (line 6)
* output, files, closing: Close Files And Pipes.
(line 6)
* output, format specifier, OFMT: OFMT. (line 15) * output, format specifier, OFMT: OFMT. (line 15)
* output, formatted: Printf. (line 6) * output, formatted: Printf. (line 6)
* output, pipes: Redirection. (line 57) * output, pipes: Redirection. (line 57)
* output, printing, See printing: Printing. (line 6)
* output, records: Output Separators. (line 20)
* output, standard: Special FD. (line 6) * output, standard: Special FD. (line 6)
* output, files, closing: Close Files And Pipes.
(line 6)
* output, buffering: I/O Functions. (line 32)
* output, buffering <1>: I/O Functions. (line 168)
* output, duplicating into files: Tee Program. (line 6)
* output field separator: Changing Fields. (line 64)
* output record separator: Output Separators. (line 20)
* output redirection: Redirection. (line 6)
* output wrapper: Output Wrappers. (line 6)
* p debugger command (alias for print): Viewing And Changing Data. * p debugger command (alias for print): Viewing And Changing Data.
(line 39) (line 39)
* package, definition of: Global Namespace. (line 18) * package, definition of: Global Namespace. (line 18)
* Papadopoulos, Panos: Contributors. (line 131) * Papadopoulos, Panos: Contributors. (line 131)
* parent process ID of gawk process: Auto-set. (line 251) * parent process ID of gawk process: Auto-set. (line 251)
* parentheses (), in a profile: Profiling. (line 146)
* parentheses (), regexp operator: Regexp Operator Details. * parentheses (), regexp operator: Regexp Operator Details.
(line 77) (line 77)
* parentheses (), in a profile: Profiling. (line 146)
* password file: Passwd Functions. (line 16) * password file: Passwd Functions. (line 16)
* patsplit: String Functions. (line 297) * patsplit: String Functions. (line 303)
* patterns, default: Very Simple. (line 35)
* patterns, regexp constants as: Regexp Usage. (line 6)
* patterns: Patterns and Actions. * patterns: Patterns and Actions.
(line 6) (line 6)
* patterns, Boolean expressions as: Expression Patterns. (line 39) * patterns, types of: Pattern Overview. (line 15)
* patterns, comparison expressions as: Expression Patterns. (line 14) * patterns, regexp constants as <1>: Regexp Patterns. (line 6)
* patterns, counts, in a profile: Profiling. (line 118)
* patterns, default: Very Simple. (line 35)
* patterns, empty: Empty. (line 6)
* patterns, expressions as: Expression Patterns. (line 6) * patterns, expressions as: Expression Patterns. (line 6)
* patterns, comparison expressions as: Expression Patterns. (line 14)
* patterns, regexp constants as <2>: Expression Patterns. (line 34)
* patterns, Boolean expressions as: Expression Patterns. (line 39)
* patterns, ranges in: Ranges. (line 6) * patterns, ranges in: Ranges. (line 6)
* patterns, regexp constants as: Expression Patterns. (line 34) * patterns, empty: Empty. (line 6)
* patterns, regular expressions as: Regexp Usage. (line 6) * patterns, counts, in a profile: Profiling. (line 118)
* patterns, regular expressions as <1>: Regexp Patterns. (line 6)
* patterns, types of: Pattern Overview. (line 15)
* pawk (profiling version of Brian Kernighan's awk): Other Versions. * pawk (profiling version of Brian Kernighan's awk): Other Versions.
(line 78) (line 78)
* pawk, awk-like facilities for Python: Other Versions. (line 137) * pawk, awk-like facilities for Python: Other Versions. (line 137)
* PC operating systems, gawk on: PC Using. (line 6)
* PC operating systems, gawk on, installing: PC Installation. (line 6) * PC operating systems, gawk on, installing: PC Installation. (line 6)
* percent sign (%), % operator: Precedence. (line 54) * PC operating systems, gawk on: PC Using. (line 6)
* percent sign (%), %= operator: Assignment Ops. (line 129) * percent sign (%), %= operator: Assignment Ops. (line 129)
* percent sign (%), % operator: Precedence. (line 54)
* percent sign (%), %= operator <1>: Precedence. (line 94) * percent sign (%), %= operator <1>: Precedence. (line 94)
* period (.), regexp operator: Regexp Operator Details. * period (.), regexp operator: Regexp Operator Details.
(line 40) (line 40)
* Perl: Future Extensions. (line 6) * Perl: Future Extensions. (line 6)
* Peters, Arno: Contributors. (line 88) * Peters, Arno: Contributors. (line 88)
* Peterson, Hal: Contributors. (line 40) * Peterson, Hal: Contributors. (line 40)
* pipe, closing: Close Files And Pipes.
(line 6)
* pipe, input: Getline/Pipe. (line 10) * pipe, input: Getline/Pipe. (line 10)
* pipe, output: Redirection. (line 57) * pipe, output: Redirection. (line 57)
* Pitts, Dave: Acknowledgments. (line 60) * pipe, closing: Close Files And Pipes.
* Pitts, Dave <1>: Maintainers. (line 14) (line 6)
* platform running on: Auto-set. (line 224) * platform running on: Auto-set. (line 224)
* Plauger, P.J.: Library Functions. (line 12) * Plauger, P.J.: Library Functions. (line 12)
* plug-in: Extension Intro. (line 6) * plug-in: Extension Intro. (line 6)
* plus sign (+), + operator: Precedence. (line 51) * plus sign (+), regexp operator: Regexp Operator Details.
* plus sign (+), + operator <1>: Precedence. (line 57) (line 107)
* plus sign (+), += operator: Assignment Ops. (line 81)
* plus sign (+), ++ operator: Increment Ops. (line 11) * plus sign (+), ++ operator: Increment Ops. (line 11)
* plus sign (+), ++ operator <1>: Increment Ops. (line 40) * plus sign (+), ++ operator <1>: Increment Ops. (line 40)
* plus sign (+), ++ operator <2>: Precedence. (line 45) * plus sign (+), ++ operator <2>: Precedence. (line 45)
* plus sign (+), += operator: Assignment Ops. (line 81) * plus sign (+), + operator: Precedence. (line 51)
* plus sign (+), + operator <1>: Precedence. (line 57)
* plus sign (+), += operator <1>: Precedence. (line 94) * plus sign (+), += operator <1>: Precedence. (line 94)
* plus sign (+), regexp operator: Regexp Operator Details.
(line 107)
* pointers to functions: Indirect Calls. (line 6) * pointers to functions: Indirect Calls. (line 6)
* portability: Escape Sequences. (line 103) * portability, #! (executable scripts): Executable Scripts. (line 29)
* portability, #! (executable scripts): Executable Scripts. (line 33) * portability, ARGV variable: Executable Scripts. (line 55)
* portability, ** operator and: Arithmetic Ops. (line 81)
* portability, **= operator and: Assignment Ops. (line 144)
* portability, ARGV variable: Executable Scripts. (line 59)
* portability, backslash continuation and: Statements/Lines. (line 30) * portability, backslash continuation and: Statements/Lines. (line 30)
* portability, POSIXLY_CORRECT environment variable: Options. (line 404)
* portability: Escape Sequences. (line 103)
* portability, backslash in escape sequences: Escape Sequences. * portability, backslash in escape sequences: Escape Sequences.
(line 108) (line 108)
* portability, data files as single record: gawk split records.
(line 69)
* portability, NF variable, decrementing: Changing Fields. (line 115)
* portability, close() function and: Close Files And Pipes. * portability, close() function and: Close Files And Pipes.
(line 81) (line 81)
* portability, data files as single record: gawk split records. * portability, new awk vs. old awk: Strings And Numbers. (line 56)
(line 65) * portability, ** operator and: Arithmetic Ops. (line 81)
* portability, **= operator and: Assignment Ops. (line 144)
* portability, operators: Increment Ops. (line 60)
* portability, operators, not in POSIX awk: Precedence. (line 97)
* portability, deleting array elements: Delete. (line 56) * portability, deleting array elements: Delete. (line 56)
* portability, example programs: Library Functions. (line 42) * portability, length() function: String Functions. (line 186)
* portability, substr() function: String Functions. (line 524)
* portability, functions, defining: Definition Syntax. (line 114) * portability, functions, defining: Definition Syntax. (line 114)
* portability, gawk: New Ports. (line 6)
* portability, gettext library and: Explaining gettext. (line 11)
* portability, internationalization and: I18N Portability. (line 6)
* portability, length() function: String Functions. (line 180)
* portability, new awk vs. old awk: Strings And Numbers. (line 56)
* portability, next statement in user-defined functions: Function Caveats. * portability, next statement in user-defined functions: Function Caveats.
(line 26) (line 26)
* portability, NF variable, decrementing: Changing Fields. (line 115) * portability, example programs: Library Functions. (line 42)
* portability, operators: Increment Ops. (line 60) * portability, gettext library and: Explaining gettext. (line 11)
* portability, operators, not in POSIX awk: Precedence. (line 97) * portability, internationalization and: I18N Portability. (line 6)
* portability, POSIXLY_CORRECT environment variable: Options. (line 393) * portability, gawk: New Ports. (line 6)
* portability, substr() function: String Functions. (line 518) * portable object, files, generating: Options. (line 169)
* portable object files: Explaining gettext. (line 37) * portable object, template files: Explaining gettext. (line 31)
* portable object files <1>: Translator i18n. (line 6) * portable object, files: Explaining gettext. (line 37)
* portable object files, converting to message object files: I18N Example. * portable object, files <1>: Translator i18n. (line 6)
* portable object, files, converting to message object files: I18N Example.
(line 80) (line 80)
* portable object files, generating: Options. (line 169)
* portable object template files: Explaining gettext. (line 31)
* porting gawk: New Ports. (line 6) * porting gawk: New Ports. (line 6)
* positional specifiers, printf statement: Format Modifiers. (line 13) * positional specifiers, printf statement: Format Modifiers. (line 13)
* positional specifiers, printf statement <1>: Printf Ordering. * positional specifiers, printf statement <1>: Printf Ordering.
(line 6) (line 6)
* positional specifiers, printf statement, mixing with regular formats: Printf O rdering. * positional specifiers, printf statement, mixing with regular formats: Printf O rdering.
(line 57) (line 57)
* POSIX, awk and: Preface. (line 21)
* POSIX, programs, implementing in awk: Clones. (line 6)
* POSIX, gawk extensions not included in: POSIX/GNU. (line 6)
* POSIX awk: This Manual. (line 14) * POSIX awk: This Manual. (line 14)
* POSIX awk <1>: Assignment Ops. (line 138) * POSIX awk, GNU long options and: Options. (line 15)
* POSIX awk, ** operator and: Precedence. (line 97)
* POSIX awk, **= operator and: Assignment Ops. (line 144)
* POSIX awk, < operator and: Getline/File. (line 26)
* POSIX awk, arithmetic operators and: Arithmetic Ops. (line 30)
* POSIX awk, backslashes in string constants: Escape Sequences. * POSIX awk, backslashes in string constants: Escape Sequences.
(line 108) (line 108)
* POSIX awk, BEGIN/END patterns: I/O And BEGIN/END. (line 15) * POSIX awk, period (.), using: Regexp Operator Details.
(line 47)
* POSIX awk, regular expressions and: Regexp Operator Details.
(line 142)
* POSIX awk, interval expressions in: Interval Expressions.
(line 6)
* POSIX awk, bracket expressions and: Bracket Expressions. (line 34) * POSIX awk, bracket expressions and: Bracket Expressions. (line 34)
* POSIX awk, bracket expressions and, character classes: Bracket Expressions. * POSIX awk, bracket expressions and, character classes: Bracket Expressions.
(line 40) (line 40)
* POSIX awk, bracket expressions and, character classes <1>: Bracket Expressions . * POSIX awk, bracket expressions and, character classes <1>: Bracket Expressions .
(line 112) (line 112)
* POSIX awk, field separators and: Full Line Fields. (line 16)
* POSIX awk, < operator and: Getline/File. (line 26)
* POSIX awk, | I/O operator and: Getline/Pipe. (line 56)
* POSIX awk, OFMT variable and: OFMT. (line 27)
* POSIX awk, printf format strings and: Format Modifiers. (line 157)
* POSIX awk, OFMT variable and <1>: Strings And Numbers. (line 56)
* POSIX awk, arithmetic operators and: Arithmetic Ops. (line 30)
* POSIX awk <1>: Assignment Ops. (line 138)
* POSIX awk, **= operator and: Assignment Ops. (line 144)
* POSIX awk, numeric strings and: Variable Typing. (line 67)
* POSIX awk, ** operator and: Precedence. (line 97)
* POSIX awk, BEGIN/END patterns: I/O And BEGIN/END. (line 15)
* POSIX awk, break statement and: Break Statement. (line 51) * POSIX awk, break statement and: Break Statement. (line 51)
* POSIX awk, changes in awk versions: POSIX. (line 6)
* POSIX awk, continue statement and: Continue Statement. (line 44) * POSIX awk, continue statement and: Continue Statement. (line 44)
* POSIX awk, next/nextfile statements and: Next Statement. (line 44)
* POSIX awk, CONVFMT variable and: User-modified. (line 30) * POSIX awk, CONVFMT variable and: User-modified. (line 30)
* POSIX awk, functions and, length(): String Functions. (line 186)
* POSIX awk, functions and, gsub()/sub(): Gory Details. (line 90)
* POSIX awk, timestamps and: Time Functions. (line 6)
* POSIX awk, date utility and: Time Functions. (line 255) * POSIX awk, date utility and: Time Functions. (line 255)
* POSIX awk, field separators and: Full Line Fields. (line 16)
* POSIX awk, function keyword in: Definition Syntax. (line 99) * POSIX awk, function keyword in: Definition Syntax. (line 99)
* POSIX awk, functions and, gsub()/sub(): Gory Details. (line 90) * POSIX awk, changes in awk versions: POSIX. (line 6)
* POSIX awk, functions and, length(): String Functions. (line 180) * POSIX mode: Options. (line 290)
* POSIX awk, GNU long options and: Options. (line 15) * POSIX mode <1>: Options. (line 384)
* POSIX awk, interval expressions in: Interval Expressions. * POSIX mode <2>: Regexp Operator Details.
(line 6)
* POSIX awk, next/nextfile statements and: Next Statement. (line 44)
* POSIX awk, numeric strings and: Variable Typing. (line 67)
* POSIX awk, OFMT variable and: OFMT. (line 27)
* POSIX awk, OFMT variable and <1>: Strings And Numbers. (line 56)
* POSIX awk, period (.), using: Regexp Operator Details.
(line 47) (line 47)
* POSIX awk, printf format strings and: Format Modifiers. (line 157) * POSIX mode <3>: Input Summary. (line 69)
* POSIX awk, regular expressions and: Regexp Operator Details. * POSIX mode <4>: Special Caveats. (line 9)
(line 142) * POSIX mode <5>: Close Files And Pipes.
* POSIX awk, timestamps and: Time Functions. (line 6) (line 164)
* POSIX awk, | I/O operator and: Getline/Pipe. (line 56) * POSIX mode <6>: Scalar Constants. (line 63)
* POSIX mode: Options. (line 283) * POSIX mode <7>: Locale influences conversions.
* POSIX mode <1>: Options. (line 373) (line 41)
* POSIX, awk and: Preface. (line 21) * POSIX mode <8>: POSIX String Comparison.
* POSIX, gawk extensions not included in: POSIX/GNU. (line 6) (line 12)
* POSIX, programs, implementing in awk: Clones. (line 6) * POSIX mode <9>: POSIX String Comparison.
* POSIXLY_CORRECT environment variable: Options. (line 373) (line 34)
* POSIX mode <10>: String Functions. (line 391)
* POSIX mode <11>: Controlling Array Traversal.
(line 226)
* POSIX mode <12>: POSIX Floating Point Problems.
(line 83)
* POSIX mode <13>: Feature History. (line 313)
* POSIXLY_CORRECT environment variable: Options. (line 384)
* PREC variable: User-modified. (line 127) * PREC variable: User-modified. (line 127)
* precedence: Increment Ops. (line 60)
* precedence <1>: Precedence. (line 6)
* precedence, regexp operators: Regexp Operator Details. * precedence, regexp operators: Regexp Operator Details.
(line 137) (line 137)
* predefined variables: Built-in Variables. (line 6) * precedence: Increment Ops. (line 60)
* precedence <1>: Precedence. (line 6)
* predefined variables, -v option, setting with: Options. (line 45) * predefined variables, -v option, setting with: Options. (line 45)
* predefined variables, conveying information: Auto-set. (line 6) * predefined variables: Built-in Variables. (line 6)
* predefined variables, user-modifiable: User-modified. (line 6) * predefined variables, user-modifiable: User-modified. (line 6)
* predefined variables, conveying information: Auto-set. (line 6)
* pretty printer, interaction with namespaces: Namespace And Features. * pretty printer, interaction with namespaces: Namespace And Features.
(line 9) (line 9)
* pretty printing: Options. (line 248) * pretty printing: Options. (line 255)
* pretty printing <1>: Profiling. (line 222) * pretty printing <1>: Profiling. (line 222)
* pretty-printing, profiling, difference with: Profiling. (line 229) * pretty printing, profiling, difference with: Profiling. (line 229)
* print debugger command: Viewing And Changing Data. * print debugger command: Viewing And Changing Data.
(line 39) (line 39)
* print statement: Printing. (line 16) * print statement: Printing. (line 16)
* print statement, BEGIN/END patterns and: I/O And BEGIN/END. (line 15)
* print statement, commas, omitting: Print Examples. (line 30) * print statement, commas, omitting: Print Examples. (line 30)
* print statement, I/O operators in: Precedence. (line 70)
* print statement, line continuations and: Print Examples. (line 75) * print statement, line continuations and: Print Examples. (line 75)
* print statement, I/O operators in: Precedence. (line 70)
* print statement, BEGIN/END patterns and: I/O And BEGIN/END. (line 15)
* print statement, OFMT variable and: User-modified. (line 116) * print statement, OFMT variable and: User-modified. (line 116)
* print statement, See Also redirection, of output: Redirection.
(line 17)
* print statement, sprintf() function and: Round Function. (line 6) * print statement, sprintf() function and: Round Function. (line 6)
* print variables, in debugger: Viewing And Changing Data. * print variables, in debugger: Viewing And Changing Data.
(line 39) (line 39)
* printf debugger command: Viewing And Changing Data. * printf debugger command: Viewing And Changing Data.
(line 57) (line 57)
* printf statement: Printing. (line 16) * printf statement: Printing. (line 16)
* printf statement <1>: Pr