diff options
Diffstat (limited to 'doc/gawk.texi')
-rw-r--r-- | doc/gawk.texi | 355 |
1 files changed, 178 insertions, 177 deletions
diff --git a/doc/gawk.texi b/doc/gawk.texi index 83513b9d..5da5fe08 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -20,9 +20,9 @@ @c applies to and all the info about who's publishing this edition @c These apply across the board. -@set UPDATE-MONTH July, 2009 +@set UPDATE-MONTH April, 2010 @set VERSION 3.1 -@set PATCHLEVEL 7 +@set PATCHLEVEL 8 @set FSF @@ -111,7 +111,8 @@ Some comments on the layout for TeX. @copying Copyright @copyright{} 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010 +Free Software Foundation, Inc. @sp 2 This is Edition @value{EDITION} of @cite{@value{TITLE}: @value{SUBTITLE}}, @@ -592,8 +593,6 @@ particular records in a file and perform operations upon them. * Additional Configuration Options:: Other compile-time options. * Configuration Philosophy:: How it's all supposed to work. * Non-Unix Installation:: Installation on Other Operating Systems. -* Amiga Installation:: Installing @command{gawk} on an Amiga. -* BeOS Installation:: Installing @command{gawk} on BeOS. * PC Installation:: Installing and Compiling @command{gawk} on MS-DOS and OS/2. * PC Binary Installation:: Installing a prepared distribution. @@ -616,6 +615,7 @@ particular records in a file and perform operations upon them. * Atari Installation:: Installing @command{gawk} on the Atari ST. * Atari Compiling:: Compiling @command{gawk} on Atari. * Atari Using:: Running @command{gawk} on Atari. +* BeOS Installation:: Installing @command{gawk} on BeOS. * Tandem Installation:: Installing @command{gawk} on a Tandem. * Bugs:: Reporting Problems and Bugs. * Other Versions:: Other freely available @command{awk} @@ -863,7 +863,8 @@ implementation of @command{awk} called @command{gawk} (which stands for ``GNU awk''). @command{gawk} runs on a broad range of Unix systems, ranging from 80386 PC-based computers up through large-scale systems, such as Crays. @command{gawk} has also been ported to Mac OS X, -MS-DOS, Microsoft Windows (all versions) and OS/2 PCs, Atari and Amiga +MS-DOS, Microsoft Windows (all versions) and OS/2 PCs, Atari +@c and Amiga microcomputers, BeOS, Tandem D20, and VMS. @menu @@ -1162,7 +1163,7 @@ emphasized @emph{like this}, and if a point needs to be made strongly, it is done @strong{like this}. The first occurrence of a new term is usually its @dfn{definition} and appears in the same font as the previous occurrence of ``definition'' in this sentence. -@value{FN}s are indicated like this: @file{/path/to/ourfile}. +Finally, @value{FN}s are indicated like this: @file{/path/to/ourfile}. @end ifnotinfo Characters that you type at the keyboard look @kbd{like this}. In particular, @@ -1370,7 +1371,7 @@ contributed code: the archive did not grow and the domain went unused for several years. Fortunately, late in 2008, a volunteer took on the task of setting up -an @command{awk}-related web site @uref{http://awk.info} and did a very +an @command{awk}-related web site---@uref{http://awk.info}---and did a very nice job. If you have written an interesting @command{awk} program, or have written @@ -1459,30 +1460,45 @@ The intrepid members of the GNITS mailing list, and most notably Ulrich Drepper, provided invaluable help and feedback for the design of the internationalization features. +@c @cindex Brown, Martin +@c @cindex Buening, Andreas +@c @cindex Hasegawa, Isamu +@c @cindex Rommel, Kai Uwe +@c Martin Brown, +@c Andreas Buening, +@c Isamu Hasegawa, +@c Kai Uwe Rommel, + @cindex Beebe, Nelson -@cindex Brown, Martin -@cindex Buening, Andreas +@cindex Colombo, Antonio @cindex Deifik, Scott +@cindex DuBois, John @cindex Hankerson, Darrel -@c @cindex Hasegawa, Isamu @cindex Jaegermann, Michal @cindex Kahrs, J@"urgen +@cindex Kasal, Stepan +@cindex Pitts, Davi @cindex Rankin, Pat -@cindex Rommel, Kai Uwe +@cindex Schorr, Andrew +@cindex Vinschen, Corinna +@cindex Wallin, Anders @cindex Zaretskii, Eli Nelson Beebe, -Martin Brown, -Andreas Buening, +Antonio Colombo Scott Deifik, +John H. DuBois III, Darrel Hankerson, -@c Isamu Hasegawa, Michal Jaegermann, J@"urgen Kahrs, +Dave Pitts, +Stepan Kasal, Pat Rankin, -Kai Uwe Rommel, +Andrew Schorr, +Corinna Vinschen, +Anders Wallin, and Eli Zaretskii (in alphabetical order) -make up the +make up the current @command{gawk} ``crack portability team.'' Without their hard work and help, @command{gawk} would not be nearly the fine program it is today. It has been and continues to be a pleasure working with this team of fine @@ -1516,7 +1532,7 @@ take advantage of those opportunities. Arnold Robbins @* Nof Ayalon @* ISRAEL @* -March, 2001 +February, 2010 @ignore @c Try this @@ -2766,8 +2782,8 @@ edit-compile-test-debug cycle of software development. Complex programs have been written in @command{awk}, including a complete retargetable assembler for eight-bit microprocessors (@pxref{Glossary}, for more information), and a microcode assembler for a special-purpose Prolog -computer. More recently, @command{gawk} was used for writing a Wiki -clone.@footnote{@uref{http://www.awk-scripting.de/cgi-bin/wiki.cgi/yawk/, Yet Another Wiki Clone}.} +computer. More recently, @command{gawk} was used for writing a +@uref{http://www.awk-scripting.de/cgi-bin/wiki.cgi/yawk/, a Wiki clone}. While the original @command{awk}'s capabilities were strained by tasks of such complexity, modern versions are more capable. Even the Bell Labs version of @command{awk} has fewer predefined limits, and those @@ -5605,7 +5621,8 @@ is a string-valued expression that specifies the file from which to read. In this version of @code{getline}, none of the built-in variables are changed and the record is not split into fields. The only variable -changed is @var{var}. +changed is @var{var}.@footnote{This is not quite true. @code{RT} could +be changed if @code{RS} is a regular expression.} For example, the following program copies all the input files to the output, except for records that say @w{@samp{@@include @var{filename}}}. Such a record is replaced by the contents of the file @@ -6452,12 +6469,10 @@ For @samp{%e}, @samp{%E}, and @samp{%f}, the result always contains a decimal point. For @samp{%g} and @samp{%G}, trailing zeros are not removed from the result. -@cindex dark corner @item 0 A leading @samp{0} (zero) acts as a flag that indicates that output should be padded with zeros instead of spaces. -This applies even to non-numeric output formats. -@value{DARKCORNER} +This applies only to the numeric output formats. This flag only has an effect when the field width is wider than the value to print. @@ -7995,7 +8010,7 @@ features have not been described yet. @item @samp{%'g} @tab Use locale @tab Use locale @item @samp{%g} @tab Use period @tab Use locale @item Input @tab Use period @tab Use locale -@item @samp{strtonum} @tab Use period @tab Use locale +@item @code{strtonum} @tab Use period @tab Use locale @end multitable @end float @@ -9444,8 +9459,7 @@ The operands are simply written side by side @cindex @code{|} (vertical bar), @code{|&} operator (I/O) @cindex vertical bar (@code{|}), @code{|&} operator (I/O) @cindex operators, input/output -@item < <= == != -@itemx > >= >> | |& +@item < <= == != > >= >> | |& Relational and redirection. The relational operators and the redirections have the same precedence level. Characters such as @samp{>} serve both as relationals and as @@ -9502,8 +9516,7 @@ Conditional. This operator groups right-to-left. @cindex percent sign (@code{%}), @code{%=} operator @cindex @code{^} (caret), @code{^=} operator @cindex caret (@code{^}), @code{^=} operator -@item = += -= *= -@itemx /= %= ^= **= +@item = += -= *= /= %= ^= **= Assignment. These operators group right to left. @end table @@ -11526,6 +11539,13 @@ same @command{awk} program. @node Array Intro @section Introduction to Arrays +@cindex Wall, Larry +@quotation +@i{Doing linear scans over an associateive array is like tryinng to club someone +to death with a loaded Uzi.}@* +Larry Wall +@end quotation + The @command{awk} language provides one-dimensional arrays for storing groups of related strings or numbers. Every @command{awk} array must have a name. Array names have the same @@ -11684,11 +11704,11 @@ The principal way to use an array is to refer to one of its elements. An array reference is an expression as follows: @example -@var{array}[@var{index}] +@var{array}[@var{index-expression}] @end example @noindent -Here, @var{array} is the name of an array. The expression @var{index} is +Here, @var{array} is the name of an array. The expression @var{index-expression} is the index of the desired element of the array. The value of the array reference is the current value of that array @@ -11709,14 +11729,14 @@ To determine whether an element exists in an array at a certain index, use the following expression: @example -@var{index} in @var{array} +@var{ind} in @var{array} @end example @cindex side effects, array indexing @noindent -This expression tests whether the particular index exists, +This expression tests whether the particular index @var{ind} exists, without the side effect of creating that element if it is not present. -The expression has the value one (true) if @code{@var{array}[@var{index}]} +The expression has the value one (true) if @code{@var{array}[@var{ind}]} exists and zero (false) if it does not exist. For example, this statement tests whether the array @code{frequencies} contains the index @samp{2}: @@ -11746,12 +11766,12 @@ Array elements can be assigned values just like @command{awk} variables: @example -@var{array}[@var{subscript}] = @var{value} +@var{array}[@var{index-expression}] = @var{value} @end example @noindent @var{array} is the name of an array. The expression -@var{subscript} is the index of the element of the array that is +@var{index-expression} is the index of the element of the array that is assigned a value. The expression @var{value} is the value to assign to that element of the array. @@ -11868,11 +11888,12 @@ for more information on the built-in function @code{length}. # Find number of distinct words more than 10 characters long END @{ - for (x in used) + for (x in used) @{ if (length(x) > 10) @{ ++num_long_words print x @} + @} print num_long_words, "words longer than 10 characters" @} @end example @@ -11902,7 +11923,7 @@ To remove an individual element of an array, use the @code{delete} statement: @example -delete @var{array}[@var{index}] +delete @var{array}[@var{index-expression}] @end example Once an array element has been deleted, any value the element once @@ -12913,7 +12934,7 @@ the third argument to be a regexp constant (@code{/abc/}) as well as a string. @value{DARKCORNER} The POSIX standard allows this as well. -@ref{Computed Regexps}, for a +@xref{Computed Regexps}, for a discussion of the difference between using a string constant or a regexp constant, and the implications for writing your program correctly. @@ -15847,7 +15868,7 @@ complete detail in @cite{GNU gettext tools}.) @end ifnotinfo As of this writing, the latest version of GNU @code{gettext} is -@uref{ftp://ftp.gnu.org/gnu/gettext/gettext-0.11.5.tar.gz, @value{PVERSION} 0.11.5}. +@uref{ftp://ftp.gnu.org/gnu/gettext/gettext-0.17.tar.gz, @value{PVERSION} 0.17}. If a translation of @command{gawk}'s messages exists, then @command{gawk} produces usage messages, warnings, @@ -16194,6 +16215,10 @@ Again, use @samp{0} if you don't care, or else a well-known service name. @end table +@quotation NOTE +Failure in opening a two-way socket will result in a non-fatal error being returned to the calling function. +@end quotation + Consider the following very simple example: @example @@ -16791,7 +16816,7 @@ names like @code{i}, @code{j}, etc.) @cindex @command{awk} programs, location of @cindex CGI, @command{awk} scripts for Similar to @option{-f}, reads @command{awk} program text from @var{file}. -There are two differences. The fist is that this option also terminates option processing; anything +There are two differences. The first is that this option also terminates option processing; anything else on the command line is passed on directly to the @command{awk} program. The second is that command line variable assignments of the form @samp{@var{var}=@var{value}} are disallowed. @@ -17217,7 +17242,7 @@ found, and @command{gawk} no longer needs to use @env{AWKPATH}. @cindex exit status, of @command{gawk} If the @code{exit} statement is used with a value -(@pxref{Exit Statement}), the @command{gawk} exits with +(@pxref{Exit Statement}), then @command{gawk} exits with the numeric value given to it. Otherwise, if there were no problems during execution, @@ -18035,8 +18060,8 @@ function round(x, ival, aval, fraction) @cindex numbers, Cliff random @cindex functions, library, Cliff random numbers -The Cliff random number -generator@footnote{@uref{http://mathworld.wolfram.com/CliffRandomNumberGenerator.html}} +The +@uref{http://mathworld.wolfram.com/CliffRandomNumberGenerator.html, Cliff random number generator} is a very simple random number generator that ``passes the noise sphere test for randomness by showing no structure.'' It is easily programmed, in less than 10 lines of @command{awk} code: @@ -22003,7 +22028,7 @@ END \ The following @command{awk} program prints the number of occurrences of each word in its input. It illustrates the associative nature of @command{awk} arrays by using strings as subscripts. It -also demonstrates the @samp{for @var{index} in @var{array}} mechanism. +also demonstrates the @samp{for (i in array)} mechanism. Finally, it shows how @command{awk} is used in conjunction with other utility programs to do a useful task of some complexity with a minimum of effort. Some explanations follow the program listing: @@ -23215,7 +23240,7 @@ The conditional expression using the ternary operator @samp{?:} (@pxref{Conditional Exp}). @item -The expression @samp{@var{index} in @var{array}} outside of @samp{for} +The expression @samp{@var{index-variable} in @var{array}} outside of @samp{for} statements (@pxref{Reference to Elements}). @item @@ -23456,6 +23481,11 @@ The @code{nextfile} statement @item The ability to delete all of an array at once with @samp{delete @var{array}} +(@pxref{String Functions}). + +@item +The ability for the @code{length} function to accept an array argument and +return the number of elements in the array. (@pxref{Delete}). @end itemize @@ -23633,9 +23663,11 @@ The @option{--traditional} option was added as a better name for The use of GNU Autoconf to control the configuration process (@pxref{Quick Installation}). +@ignore @item Amiga support (@pxref{Amiga Installation}). +@end ignore @end itemize @@ -23814,13 +23846,6 @@ and return the number of elements in the array The @code{strftime} function acquired a third argument to enable printing times as UTC (@pxref{Time Functions}). - -@item -The @option{--disable-libsigsegv} configuration option which -disables configuring, building, compiling and linking against -the @code{libsigsegv} library -(@pxref{Additional Configuration Options}). - @end itemize @c XXX ADD MORE STUFF HERE @@ -23926,6 +23951,7 @@ works on non-32-bit systems. @cindex Fish, Fred Fred Fish provided the port to Amiga systems and its documentation. +(With Fred's sad passing, this is no longer supported.) @item @cindex Deifik, Scott @@ -23935,7 +23961,7 @@ currently maintains the MS-DOS port. @item @cindex Grigera, Juan Juan Grigera -maintains the port to Windows32 systems. +provided a port to Windows32 systems. @item @cindex Hankerson, Darrel @@ -23961,8 +23987,14 @@ code and documentation, and motivated the inclusion of the @samp{|&} operator. @cindex Davies, Stephen Stephen Davies provided the initial port to Tandem systems and its documentation. -Matthew Woehlke provided improvements for Tandem's POSIX-compliant + +@item +@cindex Woehlke, Matthew +@cindex Wildenhues, Ralf +Matthew Woehlke +provided improvements for Tandem's POSIX-compliant systems. +Ralf Wildenhues now maintains this port. @item @cindex Brown, Martin @@ -23987,13 +24019,16 @@ as well as the code for the new optional third argument to the Andreas Buening updated the @command{gawk} port for OS/2. +@item @cindex Hasegawa, Isamu Isamu Hasegawa, of IBM in Japan, contributed support for multibyte characters. +@item @cindex Benzinger, Michael Michael Benzinger contributed the initial code for @code{switch} statements. +@item @cindex McPhee, Patrick Patrick T.J.@: McPhee contributed the code for dynamic loading in Windows32 environments. @@ -24056,31 +24091,17 @@ There are three ways to get GNU software: @item Copy it from someone else who already has it. -@cindex FSF (Free Software Foundation) -@cindex Free Software Foundation (FSF) -@item -Order @command{gawk} directly from the Free Software Foundation. -Software distributions are available for -Gnu/Linux, Unix, and MS-Windows, in several CD packages. -Their address is: - -@display -Free Software Foundation -51 Franklin Street, Fifth Floor -Boston, MA 02110-1301 USA -Phone: +1-617-542-5942 -Fax (including Japan): +1-617-542-2652 -Email: @email{gnu@@gnu.org} -URL: @uref{http://www.gnu.org} -@end display - -@noindent -Ordering from the FSF directly contributes to the support of the foundation -and to the production of more free software. - @item -Retrieve @command{gawk} by using anonymous @command{ftp} to the Internet host +Retrieve @command{gawk} +from the Internet host @code{ftp.gnu.org}, in the directory @file{/gnu/gawk}. +Both anonymous @command{ftp} and @code{http} access are supported. +If you have the @command{wget} program, you can use a command like +the following: + +@example +wget http://ftp.gnu.org/gnu/gawk/gawk-@value{VERSION}.@value{PATCHLEVEL}.tar.gz +@end example @end itemize The GNU software archive is mirrored around the world. @@ -24435,19 +24456,16 @@ improvement. @cindex configuration option, @code{--disable-directories-fatal} @item --disable-directories-fatal Causes @command{gawk} to silently skip directories named on the command line. - -@cindex @code{--disable-libsigsegv} configuration option -@cindex configuration option, @code{--disable-libsigsegv} -@item --disable-libsigsegv -The @option{--disable-libsigsegv} configuration option -disables configuring, building, compiling and linking against -the @code{libsigsegv} library. @end table As of version 3.1.5, the @option{--with-included-gettext} configuration option is no longer available, since @command{gawk} expects the GNU @code{gettext} library to be installed as an external library. +As of version 3.1.8, the @option{--disable-libsigsegv} configuration +option is no longer available, since @command{gawk} expects the +GNU @code{libsigsegv} library to be installed as an external library. + @node Configuration Philosophy @appendixsubsec The Configuration Process @@ -24503,87 +24521,11 @@ This @value{SECTION} describes how to install @command{gawk} on various non-Unix systems. @menu -* Amiga Installation:: Installing @command{gawk} on an Amiga. -* BeOS Installation:: Installing @command{gawk} on BeOS. * PC Installation:: Installing and Compiling @command{gawk} on MS-DOS and OS/2. * VMS Installation:: Installing @command{gawk} on VMS. @end menu -@node Amiga Installation -@appendixsubsec Installing @command{gawk} on an Amiga - -@cindex amiga -@cindex installation, amiga -You can install @command{gawk} on an Amiga system using a Unix emulation -environment, available via anonymous @command{ftp} from -@code{ftp.ninemoons.com} in the directory @file{pub/ade/current}. -This includes a shell based on @command{pdksh}. The primary component of -this environment is a Unix emulation library, @file{ixemul.lib}. -@c could really use more background here, who wrote this, etc. - -A more complete distribution for the Amiga is available on -the Geek Gadgets CD-ROM, available from: - -@display -CRONUS -1840 E. Warner Road #105-265 -Tempe, AZ 85284 USA -US Toll Free: (800) 804-0833 -Phone: +1-602-491-0442 -FAX: +1-602-491-0048 -Email: @email{info@@ninemoons.com} -WWW: @uref{http://www.ninemoons.com} -Anonymous @command{ftp} site: @code{ftp.ninemoons.com} -@end display - -Once you have the distribution, you can configure @command{gawk} simply by -running @command{configure}: - -@example -configure -v m68k-amigaos -@end example - -Then run @command{make} and you should be all set! -If these steps do not work, please send in a bug report -(@pxref{Bugs}). - -@node BeOS Installation -@appendixsubsec Installing @command{gawk} on BeOS -@cindex BeOS -@cindex installation, beos - -@c From email contributed by Martin Brown, mc@whoever.com -Since BeOS DR9, all the tools that you should need to build @code{gawk} are -included with BeOS. The process is basically identical to the Unix process -of running @command{configure} and then @command{make}. Full instructions are given below. - -You can compile @command{gawk} under BeOS by extracting the standard sources -and running @command{configure}. You @emph{must} specify the location -prefix for the installation directory. For BeOS DR9 and beyond, the best directory to -use is @file{/boot/home/config}, so the @command{configure} command is: - -@example -configure --prefix=/boot/home/config -@end example - -This installs the compiled application into @file{/boot/home/config/bin}, -which is already specified in the standard @env{PATH}. - -Once the configuration process is completed, you can run @command{make}, -and then @samp{make install}: - -@example -$ make -@dots{} -$ make install -@end example - -BeOS uses @command{bash} as its shell; thus, you use @command{gawk} the same way you would -under Unix. -If these steps do not work, please send in a bug report -(@pxref{Bugs}). - @c Rewritten by Scott Deifik <scottd.mail@sbcglobal.net> @c and Darrel Hankerson <hankedr@mail.auburn.edu> @@ -24613,6 +24555,7 @@ distribution. OS/2. * Cygwin:: Building and running @command{gawk} for Cygwin. +* MSYS:: Using @command{gawk} In The MSYS Environment. @end menu @node PC Binary Installation @@ -24970,7 +24913,7 @@ moved into the @code{BEGIN} rule. @appendixsubsubsec Using @command{gawk} In The Cygwin Environment @command{gawk} can be used ``out of the box'' under Windows if you are -using the Cygwin environment.@footnote{@uref{http://www.cygwin.com}} +using the @uref{http://www.cygwin.com, Cygwin environment}. This environment provides an excellent simulation of Unix, using the GNU tools, such as @command{bash}, the GNU Compiler Collection (GCC), GNU Make, and other GNU tools. Compilation and installation for Cygwin @@ -24994,6 +24937,17 @@ are fully supported in the Cygwin environment. This is not true for any other environment for MS-DOS or MS-Windows. @end quotation +@node MSYS +@appendixsubsubsec Using @command{gawk} In The MSYS Environment + +In the MSYS environment under Windows, @command{gawk} automatically +uses binary mode for reading and writing files. Thus there is no +need to use the @code{BINMODE} variable. + +This can cause problems with other Unix-like components that have +been ported to Windows that expect @command{gawk} to do automatic +translation of @code{"\r\n"}, since it won't. Caveat Emptor! + @node VMS Installation @appendixsubsec How to Compile and Install @command{gawk} on VMS @@ -25198,6 +25152,7 @@ the @command{gawk} port is no longer supported. @menu * Atari Installation:: Installing @command{gawk} on the Atari ST. +* BeOS Installation:: Installing @command{gawk} on BeOS. * Tandem Installation:: Installing @command{gawk} on a Tandem. @end menu @@ -25323,6 +25278,42 @@ use only backslashes. Also remember that in @command{awk}, backslashes in strings have to be doubled in order to get literal backslashes (@pxref{Escape Sequences}). +@node BeOS Installation +@appendixsubsec Installing @command{gawk} on BeOS +@cindex BeOS +@cindex installation, beos + +@c From email contributed by Martin Brown, mc@whoever.com +Since BeOS DR9, all the tools that you should need to build @code{gawk} are +included with BeOS. The process is basically identical to the Unix process +of running @command{configure} and then @command{make}. Full instructions are given below. + +You can compile @command{gawk} under BeOS by extracting the standard sources +and running @command{configure}. You @emph{must} specify the location +prefix for the installation directory. For BeOS DR9 and beyond, the best directory to +use is @file{/boot/home/config}, so the @command{configure} command is: + +@example +configure --prefix=/boot/home/config +@end example + +This installs the compiled application into @file{/boot/home/config/bin}, +which is already specified in the standard @env{PATH}. + +Once the configuration process is completed, you can run @command{make}, +and then @samp{make install}: + +@example +$ make +@dots{} +$ make install +@end example + +BeOS uses @command{bash} as its shell; thus, you use @command{gawk} the same way you would +under Unix. +If these steps do not work, please send in a bug report +(@pxref{Bugs}). + @node Tandem Installation @appendixsubsec Installing @command{gawk} on a Tandem @cindex tandem @@ -25461,17 +25452,21 @@ as follows: @item MS-DOS @tab Scott Deifik, @email{scottd.mail@@sbcglobal.net}. @c and Darrel Hankerson, @email{hankedr@@auburn.edu}. +@cindex Zaretskii, Eli +@item MS-Windows using MINGW @tab Eli Zaretskii, @email{eliz@@gnu.org}. + @c not supported @ignore @cindex Grigera, Juan @item MS-Windows @tab Juan Grigera, @email{juan@@grigera.com.ar}. -@end ignore @cindex Buening, Andreas @item OS/2 @tab Andreas Buening, @email{andreas.buening@@nexgo.de} +@end ignore @cindex Davies, Stephen @item Tandem @tab Stephen Davies, @email{scldad@@sdc.com.au}. + @cindex Wildenhues, Ralf @item Tandem (POSIX-compliant) @tab Ralf Wildenhues @email{Ralf.Wildenhues@@gmx.de} @@ -25515,7 +25510,7 @@ This @value{SECTION} briefly describes where to get them: Brian Kernighan has made his implementation of @command{awk} freely available. You can retrieve this version via the World Wide Web from -his home page.@footnote{@uref{http://www.cs.princeton.edu/~bwk}} +@uref{http://www.cs.princeton.edu/~bwk, his home page}. It is available in several archive formats: @table @asis @@ -25611,10 +25606,11 @@ The ability for @code{RS} to be a regexp @item The @code{BINMODE} special variable for non-Unix operating systems (@pxref{PC Using}). -@end itemize -It is to be hoped that a future version of @command{mawk} will support @code{nextfile} +@item +The @code{nextfile} statement (@pxref{Nextfile Statement}). +@end itemize @cindex Sumner, Andrew @cindex @command{awka} compiler for @command{awk} @@ -25651,7 +25647,7 @@ or The version of @command{awk} in @file{/usr/xpg4/bin} on Solaris is POSIX compliant. It is based on the @command{awk} from Mortice Kern Systems for PCs. The source code can be downloaded from -the OpenSolaris web site.@footnote{@uref{http://www.opensolaris.org}} +the @uref{http://www.opensolaris.org, OpenSolaris web site}. This author was able to make it compile and work under GNU/Linux with 1--2 hours of work. Making it more generally portable (using GNU Autoconf and/or Automake) would take more work, and this @@ -25664,9 +25660,9 @@ This is an interpreter for @command{awk} written in Java. It claims to be a full interpreter, although because it uses Java facilities for I/O and for regexp matching, the language it supports is different from POSIX @command{awk}. More information is available on the -project's home page.@footnote{@uref{http://jawk.sourceforge.net}}. +@uref{http://jawk.sourceforge.net, project's home page}. -@cindex @command{QTawk} +@item @command{QTawk} @cindex QuikTrim Awk This is an independent implementation of @command{awk} distributed under the GPL. It has a large number of extensions over standard @@ -25674,6 +25670,11 @@ under the GPL. It has a large number of extensions over standard See @uref{http://www.quiktrim.org/QTawk.html} for more information, including the manual and a download link. +@item QSE Awk +@cindex QSE Awk +This is an embeddable @command{awk} interpreter. For more information +see @uref{http://code.google.com/p/qse/} and @uref{http://awk.info/?tools/qse}. + @end table @c ENDOFRANGE gligawk @c ENDOFRANGE ingawk @@ -27365,11 +27366,11 @@ uses double-precision floating-point numbers to represent all numeric values. This @value{SECTION} describes some of the issues involved in using floating-point numbers. -There is a very nice paper on floating-point arithmetic by -David Goldberg, ``What Every -Computer Scientist Should Know About Floating-point Arithmetic,'' -@cite{ACM Computing Surveys} @strong{23}, 1 (1991-03), -5-48.@footnote{@uref{http://www.validlab.com/goldberg/paper.ps}.} +There is a very nice +@uref{http://www.validlab.com/goldberg/paper.pdf, paper on floating-point arithmetic} +by David Goldberg, +``What Every Computer Scientist Should Know About Floating-point Arithmetic,'' +@cite{ACM Computing Surveys} @strong{23}, 1 (1991-03), 5-48. This is worth reading if you are interested in the details, but it does require a background in computer science. @@ -27607,7 +27608,7 @@ completely as @command{sed} and @command{awk} scripts. It is thousands of lines long, including machine descriptions for several eight-bit microcomputers. It is a good example of a program that would have been better written in another language. -You can get it from @uref{ftp://ftp.freefriends.org/arnold/Awkstuff/aaa.tgz}. +You can get it from @uref{http://awk.info/?awk100/aaa}. @cindex amazingly workable formatter (@command{awf}) @cindex @command{awf} (amazingly workable formatter) program @@ -27615,8 +27616,8 @@ You can get it from @uref{ftp://ftp.freefriends.org/arnold/Awkstuff/aaa.tgz}. Henry Spencer at the University of Toronto wrote a formatter that accepts a large subset of the @samp{nroff -ms} and @samp{nroff -man} formatting commands, using @command{awk} and @command{sh}. -It is available over the Internet -from @uref{ftp://ftp.freefriends.org/arnold/Awkstuff/awf.tgz}. +It is available +from @uref{http://awk.info/?tools/awf}. @item Anchor The regexp metacharacters @samp{^} and @samp{$}, which force the match |