[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3831-gc5104f
From: |
Arnold Robbins |
Subject: |
[gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3831-gc5104f9 |
Date: |
Fri, 4 Oct 2019 07:48:04 -0400 (EDT) |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, master has been updated
via c5104f9f926b793234bde9cb05508b818ed9f9aa (commit)
via 6775b9c4de4050cd65a89835d8f337c00ede5e54 (commit)
via f4795f119a1c02ccf92469296a77a9e6d10d3757 (commit)
from f6c499e45c2856d6b0fdee24d1f761a32539fcc6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=c5104f9f926b793234bde9cb05508b818ed9f9aa
commit c5104f9f926b793234bde9cb05508b818ed9f9aa
Merge: 6775b9c f6c499e
Author: Arnold D. Robbins <address@hidden>
Date: Fri Oct 4 14:47:56 2019 +0300
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/gawk
diff --cc ChangeLog
index e4eae5e,eacf3c4..858bdaa
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,7 -1,7 +1,11 @@@
+2019-10-04 Arnold D. Robbins <address@hidden>
+
+ * config.guess, config.sub, install-sh: Updated from GNULIB.
+
+ 2019-09-30 John E. Malmberg <address@hidden>
+
+ * custom.h: OpenVMS does not provide ULLONG_MAX
+
2019-09-20 Florian Weimer <address@hidden>
* configure.ac (PRINTF_HAS_F_FORMAT): Include <string.h> for
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=6775b9c4de4050cd65a89835d8f337c00ede5e54
commit 6775b9c4de4050cd65a89835d8f337c00ede5e54
Author: Arnold D. Robbins <address@hidden>
Date: Fri Oct 4 14:47:14 2019 +0300
Update aux files.
diff --git a/ChangeLog b/ChangeLog
index a76a555..e4eae5e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-04 Arnold D. Robbins <address@hidden>
+
+ * config.guess, config.sub, install-sh: Updated from GNULIB.
+
2019-09-20 Florian Weimer <address@hidden>
* configure.ac (PRINTF_HAS_F_FORMAT): Include <string.h> for
diff --git a/config.guess b/config.guess
index 97ad073..7f9ebbe 100755
--- a/config.guess
+++ b/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-07-24'
+timestamp='2019-09-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -274,6 +274,9 @@ case
"$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:Sortix:*:*)
echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
+ *:Twizzler:*:*)
+ echo "$UNAME_MACHINE"-unknown-twizzler
+ exit ;;
*:Redox:*:*)
echo "$UNAME_MACHINE"-unknown-redox
exit ;;
diff --git a/config.sub b/config.sub
index a318a46..0f2234c 100755
--- a/config.sub
+++ b/config.sub
@@ -1343,7 +1343,7 @@ case $os in
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
| sym* | kopensolaris* | plan9* \
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
| knetbsd* | mirbsd* | netbsd* \
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 0309296..03872e0 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-04 Arnold D. Robbins <address@hidden>
+
+ * texinfo.tex: Updated.
+
2019-09-24 Arnold D. Robbins <address@hidden>
* gawktexi.in: Take advantage of new indexing features in
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index af857cb..1ea515b 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -1,9 +1,9 @@
% texinfo.tex -- TeX macros to handle Texinfo files.
-%
+%
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2019-09-20.22}
+\def\texinfoversion{2019-09-24.13}
%
% Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
%
@@ -218,7 +218,7 @@
% @errormsg{MSG}. Do the index-like expansions on MSG, but if things
% aren't perfect, it's not the end of the world, being an error message,
% after all.
-%
+%
\def\errormsg{\begingroup \indexnofonts \doerrormsg}
\def\doerrormsg#1{\errmessage{#1}}
@@ -323,9 +323,9 @@
% the output routine. The saved contents are valid until we actually
% \shipout a page.
%
-% (We used to run a short output routine to actually set \topmark and
-% \firstmark to the right values, but if this was called with an empty page
-% containing whatsits for writing index entries, the whatsits would be thrown
+% (We used to run a short output routine to actually set \topmark and
+% \firstmark to the right values, but if this was called with an empty page
+% containing whatsits for writing index entries, the whatsits would be thrown
% away and the index auxiliary file would remain empty.)
%
\newtoks\savedtopmark
@@ -365,7 +365,7 @@
\let\thischapterheading\thischapter
\else
% \thischapterheading is the same as \thischapter except it is blank
- % for the first page of a chapter. This is to prevent the chapter name
+ % for the first page of a chapter. This is to prevent the chapter name
% being shown twice.
\def\thischapterheading{}%
\fi
@@ -448,7 +448,7 @@
}%
}
-% First remove any @comment, then any @c comment. Pass the result on to
+% First remove any @comment, then any @c comment. Pass the result on to
% \argcheckspaces.
\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
@@ -1085,8 +1085,8 @@ where each line of input produces a line of output.}
end
end
}
- % The -2 in the arguments here gives all the input to TeX catcode 12
- % (other) or 10 (space), preventing undefined control sequence errors. See
+ % The -2 in the arguments here gives all the input to TeX catcode 12
+ % (other) or 10 (space), preventing undefined control sequence errors. See
% https://lists.gnu.org/archive/html/bug-texinfo/2019-08/msg00031.html
%
\endgroup
@@ -1141,7 +1141,7 @@ where each line of input produces a line of output.}
% for display in the outlines, and in other places. Thus, we have to
% double any backslashes. Otherwise, a name like "\node" will be
% interpreted as a newline (\n), followed by o, d, e. Not good.
-%
+%
% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
% related messages. The final outcome is that it is up to the TeX user
% to double the backslashes and otherwise make the string valid, so
@@ -1446,7 +1446,7 @@ output) for that.)}
% their "best" equivalent, based on the @documentencoding. Too
% much work for too little return. Just use the ASCII equivalents
% we use for the index sort strings.
- %
+ %
\indexnofonts
\setupdatafile
% We can have normal brace characters in the PDF outlines, unlike
@@ -2730,7 +2730,7 @@ end
}
% Commands to set the quote options.
-%
+%
\parseargdef\codequoteundirected{%
\def\temp{#1}%
\ifx\temp\onword
@@ -2771,7 +2771,7 @@ end
% If we are in a monospaced environment, however, 1) always use \ttsl,
% and 2) do not add an italic correction.
\def\dosmartslant#1#2{%
- \ifusingtt
+ \ifusingtt
{{\ttsl #2}\let\next=\relax}%
{\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
\next
@@ -2918,14 +2918,14 @@ end
\gdef\codedash{\futurelet\next\codedashfinish}
\gdef\codedashfinish{%
\normaldash % always output the dash character itself.
- %
+ %
% Now, output a discretionary to allow a line break, unless
% (a) the next character is a -, or
% (b) the preceding character is a -.
% E.g., given --posix, we do not want to allow a break after either -.
% Given --foo-bar, we do want to allow a break between the - and the b.
\ifx\next\codedash \else
- \ifx\codedashprev\codedash
+ \ifx\codedashprev\codedash
\else \discretionary{}{}{}\fi
\fi
% we need the space after the = for the case when \next itself is a
@@ -3007,7 +3007,7 @@ end
% For pdfTeX and LuaTeX
\ifurefurlonlylink
% PDF plus option to not display url, show just arg
- \unhbox0
+ \unhbox0
\else
% PDF, normally display both arg and url for consistency,
% visibility, if the pdf is eventually used to print, etc.
@@ -3020,7 +3020,7 @@ end
% For XeTeX
\ifurefurlonlylink
% PDF plus option to not display url, show just arg
- \unhbox0
+ \unhbox0
\else
% PDF, normally display both arg and url for consistency,
% visibility, if the pdf is eventually used to print, etc.
@@ -3078,10 +3078,10 @@ end
}
}
-% By default we'll break after the special characters, but some people like to
-% break before the special chars, so allow that. Also allow no breaking at
+% By default we'll break after the special characters, but some people like to
+% break before the special chars, so allow that. Also allow no breaking at
% all, for manual control.
-%
+%
\parseargdef\urefbreakstyle{%
\def\txiarg{#1}%
\ifx\txiarg\wordnone
@@ -3099,11 +3099,16 @@ end
\def\wordbefore{before}
\def\wordnone{none}
-% Allow a ragged right output to aid breaking long URL's. Putting stretch in
-% between characters of the URL doesn't look good.
+% Allow a ragged right output to aid breaking long URL's. There can
+% be a break at the \allowbreak with no extra glue (if the existing stretch in
+% the line is sufficent), a break at the \penalty100 with extra glue added
+% at the end of the line, or no break at all here.
+% Changing the value of the penalty and/or the amount of stretch affects how
+% preferrable one choice is over the other.
\def\urefallowbreak{%
- \hskip 0pt plus 4 em\relax
\allowbreak
+ \hskip 0pt plus 4 em\relax
+ \penalty100
\hskip 0pt plus -4 em\relax
}
@@ -3303,7 +3308,7 @@ end
% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
% except specified as a normal braced arg, so no newlines to worry about.
-%
+%
\def\outfmtnametex{tex}
%
\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
@@ -3311,7 +3316,7 @@ end
\def\inlinefmtname{#1}%
\ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
}
-%
+%
% @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
% FMTNAME is tex, else ELSE-TEXT.
\long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
@@ -3327,7 +3332,7 @@ end
% *right* brace they would have to use a command anyway, so they may as
% well use a command to get a left brace too. We could re-use the
% delimiter character idea from \verb, but it seems like overkill.
-%
+%
\long\def\inlineraw{\tex \doinlineraw}
\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
\def\doinlinerawtwo#1,#2,\finish{%
@@ -3604,7 +3609,7 @@ end
% for non-CM glyphs. That is ec* for regular text and tc* for the text
% companion symbols (LaTeX TS1 encoding). Both are part of the ec
% package and follow the same conventions.
-%
+%
\def\ecfont{\etcfont{e}}
\def\tcfont{\etcfont{t}}
%
@@ -3676,7 +3681,7 @@ end
after the title page.}}%
\def\setshortcontentsaftertitlepage{%
\errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo
- command; move your @shortcontents and @contents commands if you
+ command; move your @shortcontents and @contents commands if you
want the contents after the title page.}}%
\parseargdef\shorttitlepage{%
@@ -3731,7 +3736,7 @@ end
% don't worry much about spacing, ragged right. This should be used
% inside a \vbox, and fonts need to be set appropriately first. \par should
% be specified before the end of the \vbox, since a vbox is a group.
-%
+%
\def\raggedtitlesettings{%
\rm
\hyphenpenalty=10000
@@ -4354,7 +4359,7 @@ end
}
% multitable-only commands.
-%
+%
% @headitem starts a heading row, which we typeset in bold. Assignments
% have to be global since we are inside the implicit group of an
% alignment entry. \everycr below resets \everytab so we don't have to
@@ -4673,7 +4678,7 @@ end
% Like \expandablevalue, but completely expandable (the \message in the
% definition above operates at the execution level of TeX). Used when
% writing to auxiliary files, due to the expansion that \write does.
-% If flag is undefined, pass through an unexpanded @value command: maybe it
+% If flag is undefined, pass through an unexpanded @value command: maybe it
% will be set by the time it is read back in.
%
% NB flag names containing - or _ may not work here.
@@ -4697,7 +4702,7 @@ end
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
-%
+%
% To get the special treatment we need for `@end ifset,' we call
% \makecond and then redefine.
%
@@ -4730,7 +4735,7 @@ end
% without the @) is in fact defined. We can only feasibly check at the
% TeX level, so something like `mathcode' is going to considered
% defined even though it is not a Texinfo command.
-%
+%
\makecond{ifcommanddefined}
\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
%
@@ -4838,8 +4843,8 @@ end
\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
-
-% Used for the aux, toc and index files to prevent expansion of Texinfo
+
+% Used for the aux, toc and index files to prevent expansion of Texinfo
% commands.
%
\def\atdummies{%
@@ -5186,7 +5191,7 @@ end
}
\def\defglyph#1#2{\def#1##1{#2}} % see above
-
+
% #1 is the index name, #2 is the entry text.
@@ -5213,7 +5218,7 @@ end
\ifx\suffix\indexisfl\def\suffix{f1}\fi
% Open the file
\immediate\openout\csname#1indfile\endcsname \jobname.\suffix
- % Using \immediate above here prevents an object entering into the current
+ % Using \immediate above here prevents an object entering into the current
% box, which could confound checks such as those in \safewhatsit for
% preceding skips.
\typeout{Writing index file \jobname.\suffix}%
@@ -5265,7 +5270,7 @@ end
\ifx\segment\isfinish
\else
%
- % Fully expand the segment, throwing away any @sortas directives, and
+ % Fully expand the segment, throwing away any @sortas directives, and
% trim spaces.
\edef\trimmed{\segment}%
\edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
@@ -5323,12 +5328,12 @@ end
% the current value of \escapechar.
\def\escapeisbackslash{\escapechar=`\\}
-% Use \ in index files by default. texi2dvi didn't support @ as the escape
-% character (as it checked for "\entry" in the files, and not "@entry"). When
-% the new version of texi2dvi has had a chance to become more prevalent, then
-% the escape character can change back to @ again. This should be an easy
-% change to make now because both @ and \ are only used as escape characters
in
-% index files, never standing for themselves.
+% Use \ in index files by default. texi2dvi didn't support @ as the escape
+% character (as it checked for "\entry" in the files, and not "@entry"). When
+% the new version of texi2dvi has had a chance to become more prevalent, then
+% the escape character can change back to @ again. This should be an easy
+% change to make now because both @ and \ are only used as escape characters in
+% index files, never standing for themselves.
%
\set txiindexescapeisbackslash
@@ -5348,7 +5353,7 @@ end
\def\}{\rbracechar{}}%
\uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}%
%
- % Split the entry into primary entry and any subentries, and get the index
+ % Split the entry into primary entry and any subentries, and get the index
% sort key.
\splitindexentry\indextext
%
@@ -5529,18 +5534,18 @@ end
\uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
\expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax
\errmessage{%
-ERROR: A sorted index file in an obsolete format was skipped.
+ERROR: A sorted index file in an obsolete format was skipped.
To fix this problem, please upgrade your version of 'texi2dvi'
or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>.
-If you are using an old version of 'texindex' (part of the Texinfo
+If you are using an old version of 'texindex' (part of the Texinfo
distribution), you may also need to upgrade to a newer version (at least 6.0).
You may be able to typeset the index if you run
'texindex \jobname.\indexname' yourself.
-You could also try setting the 'txiindexescapeisbackslash' flag by
+You could also try setting the 'txiindexescapeisbackslash' flag by
running a command like
-'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do
+'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do
this, Texinfo will try to use index files in the old format.
-If you continue to have problems, deleting the index files and starting again
+If you continue to have problems, deleting the index files and starting again
might help (with 'rm \jobname.?? \jobname.??s')%
}%
\else
@@ -5609,7 +5614,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% bottom of a column to reduce an increase in inter-line spacing.
\nobreak
\vskip 0pt plus 5\baselineskip
- \penalty -300
+ \penalty -300
\vskip 0pt plus -5\baselineskip
%
% Typeset the initial. Making this add up to a whole number of
@@ -5725,7 +5730,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\advance\dimen@ii by 1\dimen@i
\ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line
\ifdim\dimen@ > 0.8\dimen@ii % due to long index text
- % Try to split the text roughly evenly. \dimen@ will be the length of
+ % Try to split the text roughly evenly. \dimen@ will be the length of
% the first line.
\dimen@ = 0.7\dimen@
\dimen@ii = \hsize
@@ -5933,7 +5938,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\newbox\balancedcolumns
\setbox\balancedcolumns=\vbox{shouldnt see this}%
%
-% Only called for the last of the double column material. \doublecolumnout
+% Only called for the last of the double column material. \doublecolumnout
% does the others.
\def\balancecolumns{%
\setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120.
@@ -5961,7 +5966,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
}%
% Now the left column is in box 1, and the right column in box 3.
%
- % Check whether the left column has come out higher than the page itself.
+ % Check whether the left column has come out higher than the page itself.
% (Note that we have doubled \vsize for the double columns, so
% the actual height of the page is 0.5\vsize).
\ifdim2\ht1>\vsize
@@ -6258,7 +6263,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\let\top\unnumbered
% Sections.
-%
+%
\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
\def\seczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
@@ -6281,7 +6286,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
}
% Subsections.
-%
+%
% normally calls numberedsubseczzz:
\outer\parseargdef\numberedsubsec{\numhead2{#1}}
\def\numberedsubseczzz#1{%
@@ -6306,7 +6311,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
}
% Subsubsections.
-%
+%
% normally numberedsubsubseczzz:
\outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
\def\numberedsubsubseczzz#1{%
@@ -7364,7 +7369,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% @indentedblock is like @quotation, but indents only on the left and
% has no optional argument.
-%
+%
\makedispenvdef{indentedblock}{\indentedblockstart}
%
\def\indentedblockstart{%
@@ -7664,7 +7669,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% @deftypefnnewline on|off says whether the return type of typed functions
% are printed on their own line. This affects @deftypefn, @deftypefun,
% @deftypeop, and @deftypemethod.
-%
+%
\parseargdef\deftypefnnewline{%
\def\temp{#1}%
\ifx\temp\onword
@@ -7683,8 +7688,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% \dosubind {index}{topic}{subtopic}
%
% If SUBTOPIC is present, precede it with a space, and call \doind.
-% (At some time during the 20th century, this made a two-level entry in an
-% index such as the operation index. Nobody seemed to notice the change in
+% (At some time during the 20th century, this made a two-level entry in an
+% index such as the operation index. Nobody seemed to notice the change in
% behaviour though.)
\def\dosubind#1#2#3{%
\def\thirdarg{#3}%
@@ -7859,7 +7864,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\tclose{\temp}% typeset the return type
\ifrettypeownline
% put return type on its own line; prohibit line break following:
- \hfil\vadjust{\nobreak}\break
+ \hfil\vadjust{\nobreak}\break
\else
\space % type on same line, so just followed by a space
\fi
@@ -8006,7 +8011,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\scantokens{#1@comment}%
%
% The \comment is to remove the \newlinechar added by \scantokens, and
- % can be noticed by \parsearg. Note \c isn't used because this means
cedilla
+ % can be noticed by \parsearg. Note \c isn't used because this means cedilla
% in math mode.
}
@@ -8207,7 +8212,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% list to some hook where the argument is to be expanded. If there are
% less than 10 arguments that hook is to be replaced by ##N where N
% is the position in that list, that is to say the macro arguments are to be
-% defined `a la TeX in the macro body.
+% defined `a la TeX in the macro body.
%
% That gets used by \mbodybackslash (above).
%
@@ -8238,8 +8243,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
%
% Read recursive and nonrecursive macro bodies. (They're different since
% rec and nonrec macros end differently.)
-%
-% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
+%
+% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
% body to be transformed.
% Set \macrobody to the body of the macro, and call \defmacro.
%
@@ -8273,7 +8278,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% twice the \macarg.BLAH macros does not cost too much processing power.
\def\parsemmanyargdef@@#1,{%
\if#1;\let\next=\relax
- \else
+ \else
\let\next=\parsemmanyargdef@@
\edef\tempb{\eatspaces{#1}}%
\expandafter\def\expandafter\tempa
@@ -8358,7 +8363,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% Replace arguments by their values in the macro body, and place the result
% in macro \@tempa.
-%
+%
\def\macvalstoargs@{%
% To do this we use the property that token registers that are \the'ed
% within an \edef expand only once. So we are going to place all argument
@@ -8382,9 +8387,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
}
-% Define the named-macro outside of this group and then close this group.
-%
-\def\macargexpandinbody@{%
+% Define the named-macro outside of this group and then close this group.
+%
+\def\macargexpandinbody@{%
\expandafter
\endgroup
\macargdeflist@
@@ -8422,7 +8427,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
}
% Trailing missing arguments are set to empty.
-%
+%
\def\setemptyargvalues@{%
\ifx\paramlist\nilm@
\let\next\macargexpandinbody@
@@ -8499,7 +8504,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\else % at most 9
\ifnum\paramno<10\relax
% @MACNAME sets the context for reading the macro argument
- % @MACNAME@@ gets the argument, processes backslashes and appends a
+ % @MACNAME@@ gets the argument, processes backslashes and appends a
% comma.
% @MACNAME@@@ removes braces surrounding the argument list.
% @MACNAME@@@@ scans the macro body with arguments substituted.
@@ -8543,11 +8548,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% Call #1 with a list of tokens #2, with any doubled backslashes in #2
% compressed to one.
%
-% This implementation works by expansion, and not execution (so we cannot use
-% \def or similar). This reduces the risk of this failing in contexts where
-% complete expansion is done with no execution (for example, in writing out to
+% This implementation works by expansion, and not execution (so we cannot use
+% \def or similar). This reduces the risk of this failing in contexts where
+% complete expansion is done with no execution (for example, in writing out to
% an auxiliary file for an index entry).
-%
+%
% State is kept in the input stream: the argument passed to
% @look_ahead, @gobble_and_check_finish and @add_segment is
%
@@ -8569,11 +8574,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% #3 - NEXT_TOKEN
% #4 used to look ahead
%
-% If the next token is not a backslash, process the rest of the argument;
+% If the next token is not a backslash, process the rest of the argument;
% otherwise, remove the next token.
@gdef@look_ahead#1!#2#3#4{%
@ifx#4\%
- @expandafter@gobble_and_check_finish
+ @expandafter@gobble_and_check_finish
@else
@expandafter@add_segment
@fi#1!{#2}#4#4%
@@ -8597,9 +8602,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% #3 - NEXT_TOKEN
% #4 is input stream until next backslash
%
-% Input stream is either at the start of the argument, or just after a
-% backslash sequence, either a lone backslash, or a doubled backslash.
-% NEXT_TOKEN contains the first token in the input stream: if it is \finish,
+% Input stream is either at the start of the argument, or just after a
+% backslash sequence, either a lone backslash, or a doubled backslash.
+% NEXT_TOKEN contains the first token in the input stream: if it is \finish,
% finish; otherwise, append to ARG_RESULT the segment of the argument up until
% the next backslash. PENDING_BACKSLASH contains a backslash to represent
% a backslash just before the start of the input stream that has not been
@@ -8611,13 +8616,13 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% append the pending backslash to the result, followed by the next segment
@expandafter@is_fi@look_ahead#1#2#4!{\}@fi
% this @fi is discarded by @look_ahead.
- % we can't get rid of it with \expandafter because we don't know how
+ % we can't get rid of it with \expandafter because we don't know how
% long #4 is.
}
% #1 - THE_MACRO
% #2 - ARG_RESULT
-% #3 discards the res of the conditional in @add_segment, and @is_fi ends the
+% #3 discards the res of the conditional in @add_segment, and @is_fi ends the
% conditional.
@gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}}
@@ -8629,7 +8634,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% for reading the argument (slightly different in the two cases). Then,
% to read the argument, in the whole-line case, it then calls the regular
% \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC.
-%
+%
\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
\def\braceorlinexxx{%
\ifx\nchar\bgroup
@@ -8683,7 +8688,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% Used so that the @top node doesn't have to be wrapped in an @ifnottex
% conditional.
-% \doignore goes to more effort to skip nested conditionals but we don't need
+% \doignore goes to more effort to skip nested conditionals but we don't need
% that here.
\def\omittopnode{%
\ifx\lastnode\wordTop
@@ -8691,7 +8696,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
}
\def\wordTop{Top}
-% Until the next @node or @bye command, divert output to a box that is not
+% Until the next @node or @bye command, divert output to a box that is not
% output.
\def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}%
\ignorenodebye
@@ -8758,7 +8763,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% automatically in xrefs, if the third arg is not explicitly specified.
% This was provided as a "secret" @set xref-automatic-section-title
% variable, now it's official.
-%
+%
\parseargdef\xrefautomaticsectiontitle{%
\def\temp{#1}%
\ifx\temp\onword
@@ -8774,7 +8779,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\fi\fi
}
-%
+%
% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
% the node name, #2 the name of the Info cross-reference, #3 the printed
% node name, #4 the name of the Info file, #5 the name of the printed
@@ -8927,24 +8932,24 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\fi
\else
% node/anchor (non-float) references.
- %
+ %
% If we use \unhbox to print the node names, TeX does not insert
% empty discretionaries after hyphens, which means that it will not
% find a line break at a hyphen in a node names. Since some manuals
% are best written with fairly long node names, containing hyphens,
% this is a loss. Therefore, we give the text of the node name
% again, so it is as if TeX is seeing it for the first time.
- %
+ %
\ifdim \wd\printedmanualbox > 0pt
% Cross-manual reference with a printed manual name.
- %
+ %
\crossmanualxref{\cite{\printedmanual\unskip}}%
%
\else\ifdim \wd\infofilenamebox > 0pt
% Cross-manual reference with only an info filename (arg 4), no
% printed manual name (arg 5). This is essentially the same as
% the case above; we output the filename, since we have nothing else.
- %
+ %
\crossmanualxref{\code{\infofilename\unskip}}%
%
\else
@@ -8984,20 +8989,20 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\endgroup}
% Output a cross-manual xref to #1. Used just above (twice).
-%
+%
% Only include the text "Section ``foo'' in" if the foo is neither
% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply
% "see The Foo Manual", the idea being to refer to the whole manual.
-%
+%
% But, this being TeX, we can't easily compare our node name against the
% string "Top" while ignoring the possible spaces before and after in
% the input. By adding the arbitrary 7sp below, we make it much less
% likely that a real node name would have the same width as "Top" (e.g.,
% in a monospaced font). Hopefully it will never happen in practice.
-%
+%
% For the same basic reason, we retypeset the "Top" at every
% reference, since the current font is indeterminate.
-%
+%
\def\crossmanualxref#1{%
\setbox\toprefbox = \hbox{Top\kern7sp}%
\setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
@@ -9044,7 +9049,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\fi\fi\fi
}
-% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX
+% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX
% is output afterwards if non-empty.
\def\refx#1#2{%
\requireauxfile
@@ -9076,9 +9081,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
#2% Output the suffix in any case.
}
-% This is the macro invoked by entries in the aux file. Define a control
-% sequence for a cross-reference target (we prepend XR to the control sequence
-% name to avoid collisions). The value is the page number. If this is a
float
+% This is the macro invoked by entries in the aux file. Define a control
+% sequence for a cross-reference target (we prepend XR to the control sequence
+% name to avoid collisions). The value is the page number. If this is a float
% type, we have more work to do.
%
\def\xrdef#1#2{%
@@ -9094,10 +9099,10 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\bgroup
\expandafter\gdef\csname XR\safexrefname\endcsname{#2}%
\egroup
- % We put the \gdef inside a group to avoid the definitions building up on
- % TeX's save stack, which can cause it to run out of space for aux files
with
+ % We put the \gdef inside a group to avoid the definitions building up on
+ % TeX's save stack, which can cause it to run out of space for aux files with
% thousands of lines. \gdef doesn't use the save stack, but \csname does
- % when it defines an unknown control sequence as \relax.
+ % when it defines an unknown control sequence as \relax.
%
% Was that xref control sequence that we just defined for a float?
\expandafter\iffloat\csname XR\safexrefname\endcsname
@@ -9456,7 +9461,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
%
\ifimagevmode
\medskip % space after a standalone image
- \fi
+ \fi
\ifx\centersub\centerV \egroup \fi
\endgroup}
@@ -10287,7 +10292,7 @@ directory should work if nowhere else does.}
\uppercase{.}
\endgroup
\else
- \errhelp = \EMsimple
+ \errhelp = \EMsimple
\errmessage{Unicode character U+#1 not supported, sorry}%
\fi
\else
@@ -10320,7 +10325,7 @@ directory should work if nowhere else does.}
\countUTFz = "#1\relax
\begingroup
\parseXMLCharref
-
+
% Give \u8:... its definition. The sequence of seven \expandafter's
% expands after the \gdef three times, e.g.
%
@@ -10332,7 +10337,7 @@ directory should work if nowhere else does.}
\expandafter\expandafter
\expandafter\expandafter
\expandafter\gdef \UTFviiiTmp{#2}%
- %
+ %
\expandafter\ifx\csname uni:#1\endcsname \relax \else
\message{Internal error, already defined: #1}%
\fi
@@ -10371,7 +10376,7 @@ directory should work if nowhere else does.}
\divide\countUTFz by 64
\countUTFy = \countUTFz % Save to be the future value of \countUTFz.
\multiply\countUTFz by 64
-
+
% \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract
% in order to get the last five bits.
\advance\countUTFx by -\countUTFz
@@ -10406,7 +10411,7 @@ directory should work if nowhere else does.}
% U+0080..U+00FF =
https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
% U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
% U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
-%
+%
% Many of our renditions are less than wonderful, and all the missing
% characters are available somewhere. Loading the necessary fonts
% awaits user request. We can't truly support Unicode without
@@ -11444,9 +11449,9 @@ directory should work if nowhere else does.}
\def\texinfochars{%
\let< = \activeless
\let> = \activegtr
- \let~ = \activetilde
+ \let~ = \activetilde
\let^ = \activehat
- \markupsetuplqdefault \markupsetuprqdefault
+ \markupsetuplqdefault \markupsetuprqdefault
\let\b = \strong
\let\i = \smartitalic
% in principle, all other definitions in \tex have to be undone too.
diff --git a/extension/build-aux/ChangeLog b/extension/build-aux/ChangeLog
index 1488044..3fde6e0 100644
--- a/extension/build-aux/ChangeLog
+++ b/extension/build-aux/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-04 Arnold D. Robbins <address@hidden>
+
+ * config.guess, config.sub, install-sh: Updated from GNULIB.
+
2019-08-21 Arnold D. Robbins <address@hidden>
* config.guess: Updated from GNULIB.
diff --git a/extension/build-aux/config.guess b/extension/build-aux/config.guess
index 97ad073..7f9ebbe 100755
--- a/extension/build-aux/config.guess
+++ b/extension/build-aux/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-07-24'
+timestamp='2019-09-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -274,6 +274,9 @@ case
"$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:Sortix:*:*)
echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
+ *:Twizzler:*:*)
+ echo "$UNAME_MACHINE"-unknown-twizzler
+ exit ;;
*:Redox:*:*)
echo "$UNAME_MACHINE"-unknown-redox
exit ;;
diff --git a/extension/build-aux/config.sub b/extension/build-aux/config.sub
index a318a46..0f2234c 100755
--- a/extension/build-aux/config.sub
+++ b/extension/build-aux/config.sub
@@ -1343,7 +1343,7 @@ case $os in
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
| sym* | kopensolaris* | plan9* \
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
| knetbsd* | mirbsd* | netbsd* \
diff --git a/extension/build-aux/install-sh b/extension/build-aux/install-sh
index 8175c64..20d8b2e 100755
--- a/extension/build-aux/install-sh
+++ b/extension/build-aux/install-sh
@@ -451,7 +451,18 @@ do
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
diff --git a/install-sh b/install-sh
index 8175c64..20d8b2e 100755
--- a/install-sh
+++ b/install-sh
@@ -451,7 +451,18 @@ do
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=f4795f119a1c02ccf92469296a77a9e6d10d3757
commit f4795f119a1c02ccf92469296a77a9e6d10d3757
Author: Arnold D. Robbins <address@hidden>
Date: Fri Oct 4 14:41:35 2019 +0300
Update Italian translation.
diff --git a/doc/it/ChangeLog b/doc/it/ChangeLog
index 00740b4..4a70441 100644
--- a/doc/it/ChangeLog
+++ b/doc/it/ChangeLog
@@ -1,3 +1,9 @@
+2019-10-02 Antonio Giovanni Colombo <address@hidden>
+
+ * gawktexi.in: Updated.
+ * sidebar.awk: Updated.
+ * texinfo.tex: Updated.
+
2019-09-24 Antonio Giovanni Colombo <address@hidden>
* texinfo.tex: Updated.
diff --git a/doc/it/gawktexi.in b/doc/it/gawktexi.in
index c41c25d..115ef1e 100644
--- a/doc/it/gawktexi.in
+++ b/doc/it/gawktexi.in
@@ -56,7 +56,7 @@
@c applies to and all the info about who's publishing this edition
@c These apply across the board.
-@set UPDATE-MONTH Luglio 2019
+@set UPDATE-MONTH Settembre 2019
@set VERSION 5.1
@set PATCHLEVEL 0
@@ -246,11 +246,11 @@
@ifnotinfo
@macro cindexawkfunc{name}
-@cindex @code{\name\()}, funzione
+@cindex @code{\name\()} (funzione)
@end macro
@macro cindexgawkfunc{name}
-@cindex @code{\name\()}, funzione (@command{gawk})
+@cindex @code{\name\()} (funzione @command{gawk})
@end macro
@end ifnotinfo
@@ -1273,7 +1273,7 @@ per aver arricchito le nostre vite in misura
incalcolabile.
Arnold Robbins e io siamo buoni amici. Ci siamo conosciuti
@c 11 years ago
nel 1990 per un insieme di
-circostanze---e per il nostro linguaggio di programmazione preferito, AWK.
+circostanze --- e per il nostro linguaggio di programmazione preferito, AWK.
Tutto era iniziato un paio d'anni prima.
Avevo appena iniziato un nuovo lavoro e avevo notato un computer Unix
scollegato
che giaceva in un angolo.
@@ -1286,9 +1286,9 @@ In uno dei miei giri per biblioteche e librerie alla
ricerca di libri sullo
Unix, trovai il libro, dalla copertina grigia, su AWK, noto anche come @:
Alfred V.@: Aho, Brian W.@: Kernighan e
Peter J.@: Weinberger, @cite{The AWK Programming Language}, (Addison-Wesley,
-1988). Il semplice paradigma di programmazione di AWK
----trovare un'espressione di ricerca nell'input e di conseguenza compiere
-un'azione---riduceva spesso
+1988). Il semplice paradigma di programmazione di AWK --- trovare
+un'espressione di ricerca nell'input e di conseguenza compiere
+un'azione --- riduceva spesso
complesse e tediose manipolazioni di dati a poche righe di codice. Ero
entusiasta di cimentarmi nella programmazione in AWK.
@@ -1495,6 +1495,7 @@ Ottobre 2014
</prefaceinfo>
@end docbook
+@cindex @command{awk}
Lavorando con file di testo capita di dover eseguire alcuni tipi ripetitivi di
operazioni. Si potrebbe voler estrarre alcune righe e scartare il resto, o fare
modifiche laddove siano verificate certe condizioni, lasciando inalterato il
@@ -1503,7 +1504,7 @@ resto del file. Questi compiti risultano spesso pi@`u
agevoli usando
di programmazione specializzato che rende facile eseguire semplici attivit@`a
di riformattazione di dati.
-@cindex Brian Kernighan, @command{awk} di
+@cindex @command{gawk}
L'implementazione GNU di @command{awk} @`e chiamata @command{gawk}; se
invocato con le opzioni o con le variabili d'ambiente appropriate,
(@pxref{Opzioni}), @`e pienamente
@@ -1518,13 +1519,13 @@ Ci@`o implica che tutti i programmi
Perci@`o nella maggior parte dei casi non si distingue tra @command{gawk} e
altre implementazioni di @command{awk}.
-@cindex @command{awk}, POSIX e, si veda anche POSIX @command{awk}
-@cindex @command{awk}, POSIX e
-@cindex POSIX, @command{awk} e
-@cindex @command{gawk}, @command{awk} e
-@cindex @command{awk}, @command{gawk} e
-@cindex @command{awk}, uso di
-Usando @command{awk} potete:
+@cindex @command{awk} @subentry POSIX e @seealso{POSIX @command{awk}}
+@cindex @command{awk} @subentry POSIX e
+@cindex POSIX @subentry @command{awk} e
+@cindex @command{gawk} @subentry @command{awk} e
+@cindex @command{awk} @subentry @command{gawk} e
+@cindex @command{awk} @subentry uso di
+Usando @command{awk} si possono:
@itemize @value{BULLET}
@item
@@ -1544,9 +1545,9 @@ Sperimentare algoritmi che possono essere adattati in
seguito ad altri
linguaggi per computer
@end itemize
-@cindex @command{awk}, si veda anche @command{gawk}
-@cindex @command{gawk}, si veda anche @command{awk}
-@cindex @command{gawk}, uso di
+@cindex @command{awk} @seealso{@command{gawk}}
+@cindex @command{gawk} @seealso{@command{awk}}
+@cindex @command{gawk} @subentry uso di
Inoltre,
@command{gawk}
fornisce strumenti che rendono facile:
@@ -1578,7 +1579,7 @@ deve comunque avere familiarit@`a con i concetti di
ridirezione I/O e di
@dfn{pipe}.} cos@`{@dotless{i}} come con le funzionalit@`a di base della
shell, come la
ridirezione, l'input/output (I/O) e le @dfn{pipe}.
-@cindex GNU @command{awk}, si veda @command{gawk}
+@cindex GNU @command{awk} @seeentry{@command{gawk}}
Implementazioni del linguaggio @command{awk} sono disponibili per diversi
sistemi operativi di computer. Questo @value{DOCUMENT}, oltre a descrivere il
linguaggio @command{awk} in generale, descrive anche la specifica
@@ -1614,8 +1615,8 @@ per quei sistemi @`e stato rimosso.}
@node Storia
@unnumberedsec La storia di @command{gawk} e @command{awk}
@cindex ricetta per un linguaggio di programmazione
-@cindex linguaggio di programmazione, ricetta per un
-@cindex programmazione, ricetta per un linguaggio di
+@cindex linguaggi di programmazione @subentry ricetta per
+@cindex programmazione @subentry ricetta per linguaggi di
@sidebar Ricetta per un linguaggio di programmazione
@multitable {2 parti di} {1 parte di @code{egrep}} {1 parte di @code{snobol}}
@@ -1633,7 +1634,7 @@ parti di C. Documentare molto bene e distribuire.
@cindex Aho, Alfred
@cindex Weinberger, Peter
@cindex Kernighan, Brian
-@cindex @command{awk}, storia di
+@cindex @command{awk} @subentry storia di
Il nome @command{awk} deriva dalle iniziali dei suoi progettisti: Alfred V.@:
Aho, Peter J.@: Weinberger e Brian W.@: Kernighan. La versione originale di
@command{awk} fu scritta nel 1977 negli AT&T Bell Laboratories.
@@ -1682,7 +1683,7 @@ per un elenco completo di quelli che hanno fornito
contributi importanti a
@node Nomi
@unnumberedsec Una rosa, con ogni altro nome...
-@cindex @command{awk}, nuovo e vecchio
+@cindex @command{awk} @subentry nuovo e vecchio
Il linguaggio @command{awk} si @`e evoluto nel corso degli anni. Tutti i
dettagli si trovano in @ref{Storia del linguaggio}.
Il linguaggio descritto in questo @value{DOCUMENT}
@@ -1720,7 +1721,7 @@ dell'implementazione GNU, viene usato i termine
@command{gawk}.
@node Questo manuale
@unnumberedsec Uso di questo @value{DOCUMENT}
-@cindex @command{awk}, descrizione dei termini
+@cindex @command{awk} @subentry descrizione dei termini
Il termine @command{awk} si riferisce sia a uno specifico programma sia al
linguaggio che si usa per dire al programma stesso cosa deve fare. Quando
dobbiamo
@@ -1732,8 +1733,8 @@ eseguire l'utilit@`a @command{awk}.
Il termine ``programma @command{awk}'' si riferisce a un programma scritto
dall'utente nel linguaggio di programmazione @command{awk}.
-@cindex @command{gawk}, @command{awk} e
-@cindex @command{awk}, @command{gawk} e
+@cindex @command{gawk} @subentry @command{awk} e
+@cindex @command{awk} @subentry @command{gawk} e
@cindex POSIX @command{awk}
In primo luogo, questo @value{DOCUMENT} spiega le funzionalit@`a di
@command{awk}
come definite nello standard POSIX, e lo fa nel contesto dell'implementazione
@@ -1766,7 +1767,7 @@ sparsi in tutto il @value{DOCUMENT}.
Aggiungono una spiegazione pi@`u completa su punti importanti, ma che
probabilmente non sono di interesse in sede di prima lettura.
@ifclear FOR_PRINT
-Si trovano tutti nell'indice analitico, alla voce ``sidebar.'' @c non c'e
riquadro nell'indice analitico
+Si trovano tutti nell'indice analitico, alla voce ``riquadro.''
@end ifclear
La maggior parte delle volte, gli esempi usano programmi @command{awk}
completi.
@@ -2105,12 +2106,12 @@ Note di avviso o raccomandazioni di cautela sono
stampate in questo modo.
@unnumberedsubsec Angoli Bui
@cindex Kernighan, Brian
@quotation
-@i{Gli angoli bui sono essenzialmente frattali---per quanto vengano
+@i{Gli angoli bui sono essenzialmente frattali --- per quanto vengano
illuminati, ce n'@`e sempre uno pi@`u piccolo e pi@`u buio.}
@author Brian Kernighan
@end quotation
-@cindex a.b., si veda angolo buio
+@cindex a.b. @seeentry{angolo buio}
@cindex angolo buio
Fino allo standard POSIX (e @cite{@value{TITLE}}),
molte caratteristiche di @command{awk} erano poco documentate o
@@ -2130,7 +2131,7 @@ Appaiono anche nell'indice sotto la voce ``angolo buio.''
Ma come osservato nella citazione d'apertura, ogni trattazione degli
angoli bui @`e per definizione incompleta.
-@cindex e.c., si veda estensioni comuni
+@cindex e.c. @seeentry{estensioni comuni}
Estensioni al linguaggio standard di @command{awk} disponibili in pi@`u di una
implementazione di @command{awk} sono segnate
@ifclear FOR_PRINT
@@ -2152,11 +2153,11 @@ dedita alla produzione e distribuzione di software
liberamente distribuibile.
@`E stata fondata da Richard M.@: Stallman, l'autore della prima versione
dell'editor Emacs. GNU Emacs @`e oggi la versione di Emacs pi@`u largamente
usata.
-@cindex Progetto GNU
-@cindex GNU, Progetto
+@cindex progetto @subentry GNU
+@cindex GNU @subentry progetto
@cindex GPL (General Public License)
-@cindex General Public License, si veda GPL
-@cindex documentazione, online
+@cindex General Public License @seeentry{GPL}
+@cindex documentazione @subentry online
Il Progetto GNU@footnote{GNU sta per ``GNU's Not Unix.''}
@`e un progetto della Free Software
Foundation in continuo sviluppo per creare un ambiente per computer completo,
liberamente
@@ -2185,9 +2186,8 @@ piccoli programmi di utilit@`a (come @command{gawk}),
sono stati completati e
sono liberamente disponibili. Il kernel del sistema operativo GNU (noto come
HURD), @`e stato rilasciato ma @`e ancora allo stato di sviluppo iniziale.
-@cindex Linux
@cindex GNU/Linux
-@cindex sistemi operativi basati su BSD
+@cindex sistemi operativi @subentry basati su BSD
In attesa che il sistema operativo GNU venga pi@`u completatamente
sviluppato, si dovrebbe prendere in considerazione l'uso di GNU/Linux, un
sistema operativo liberamente distribuibile e basato su Unix disponibile
@@ -2200,8 +2200,8 @@ scaricabili da internet.
@end ifclear
@ifnotinfo
-Il @value{DOCUMENT} @`e realmente libero---almeno, l'informazione che contiene
-@`e libera per chiunque---. Il codice sorgente del @value{DOCUMENT}, leggibile
+Il @value{DOCUMENT} @`e realmente libero --- almeno, l'informazione che
contiene
+@`e libera per chiunque ---. Il codice sorgente del @value{DOCUMENT},
leggibile
elettronicamente, viene fornito con @command{gawk}.
@ifclear FOR_PRINT
(Dare un'occhiata alla Free Documentation
@@ -2365,10 +2365,10 @@ significare sia
che @cite{Come curiosare educatamente}].
Karl Berry ha aiutato in modo significativo con la parte @TeX{} di Texinfo.
-@cindex Hartholz, Marshall
-@cindex Hartholz, Elaine
-@cindex Schreiber, Bert
-@cindex Schreiber, Rita
+@cindex Hartholz @subentry Marshall
+@cindex Hartholz @subentry Elaine
+@cindex Schreiber @subentry Bert
+@cindex Schreiber @subentry Rita
Vorrei ringraziare Marshall ed Elaine Hartholz di Seattle e il Dr.@: Bert e
Rita
Schreiber di Detroit per i lunghi periodi di vacanza trascorsi in tutta
tranquillit@`a in casa loro, che mi hanno permesso di fare importanti progressi
@@ -2388,7 +2388,7 @@ lavorare con lui a questo progetto @`e stato un vero
piacere.
@cindex Drepper, Ulrich
@cindex GNITS mailing list
-@cindex mailing list, GNITS
+@cindex mailing list @subentry GNITS
Gli intrepidi membri della lista GNITS, con una particolare menzione per Ulrich
Drepper, hanno fornito un aiuto prezioso e commenti per il progetto
delle funzionalit@`a di internazionalizzazione.
@@ -2411,7 +2411,7 @@ versione 3.1 di @command{gawk}.
@cindex Jaegermann, Michal
@cindex Kahrs, J@"urgen
@cindex Kasal, Stepan
-@cindex Malmberg, John E.
+@cindex Malmberg, John
@cindex Pitts, Dave
@cindex Ramey, Chet
@cindex Rankin, Pat
@@ -2483,9 +2483,9 @@ amicizia e per essere stato per me un modello da seguire
ormai da quasi
30 anni! Averlo come revisiore @`e per me un privilegio eccitante, ma @`e
stata anche un'esperienza che mi ha fatto sentire molto piccolo@enddots{}
-@cindex Robbins, Miriam
-@cindex Robbins, Jean
-@cindex Robbins, Harry
+@cindex Robbins @subentry Miriam
+@cindex Robbins @subentry Jean
+@cindex Robbins @subentry Harry
@cindex D-o
Devo ringraziare la mia meravigliosa moglie, Miriam, per la sua pazienza nel
corso delle molte versioni di questo progetto, per la correzione delle bozze e
@@ -2548,11 +2548,11 @@ seguenti capitoli:
@end ifdocbook
@node Per iniziare
@chapter Per iniziare con @command{awk}
-@c @cindex @dfn{script}, definizione di
-@c @cindex rule, definizione di
-@c @cindex program, definizione di
+@c @cindex script, definition of
+@c @cindex rule, definition of
+@c @cindex program, definition of
@c @cindex basic function of @command{awk}
-@cindex @command{awk}, funzione di
+@cindex @command{awk} @subentry utilizzo di
Il compito fondamentale di @command{awk} @`e quello di ricercare righe (o
altre unit@`a di testo) in file che corrispondano a certi criteri di ricerca.
@@ -2561,9 +2561,9 @@ quella riga le azioni specificate per quel criterio.
@command{awk} continua
a elaborare righe in input in questo modo, finch@'e non raggiunge la fine delle
righe nei file in input.
-@cindex @command{awk}, uso di
-@cindex linguaggi di programmazione@comma{} guidati-dai-dati/procedurali
-@cindex @command{awk}, programmi
+@cindex @command{awk} @subentry uso di
+@cindex linguaggi di programmazione @subentry guidati-dai-dati vs. procedurali
+@cindex programmi @command{awk}
I programmi scritti in @command{awk} sono differenti dai programmi scritti
nella maggior parte degli altri linguaggi,
poich@'e i programmi @command{awk} sono @dfn{guidati dai dati} (ovvero,
@@ -2577,8 +2577,8 @@ deve elaborare.
Per questa ragione i programmi @command{awk} sono spesso piacevolmente
facili da leggere e da scrivere.
-@cindex programma, definizione di
-@cindex regola, definizione di
+@cindex programma @subentry definizione di
+@cindex regola @subentry definizione di
Quando si esegue @command{awk}, va specificato un
@dfn{programma} @command{awk} che
dice ad @command{awk} cosa fare. Il programma consiste di una serie di
@@ -2623,7 +2623,7 @@ Per separare regole, basta andare a capo. Quindi un
programma
@node Eseguire gawk
@section Come iniziare a eseguire programmi @command{gawk}
-@cindex programmi @command{awk}, eseguire
+@cindex programmi @command{awk} @subentry eseguire
Ci sono vari modi di eseguire un programma @command{awk}. Se il programma @`e
corto, @`e pi@`u facile includerlo nel comando con cui si invoca @command{awk},
cos@`{@dotless{i}}:
@@ -2632,7 +2632,7 @@ cos@`{@dotless{i}}:
awk '@var{programma}' @var{input-file1} @var{input-file2} @dots{}
@end example
-@cindex riga di comando, formati
+@cindex riga di comando @subentry formati
Quando il programma @`e lungo, di solito @`e meglio metterlo in un file
ed eseguirlo con un comando come questo:
@@ -2692,8 +2692,8 @@ della shell. Gli apici fanno inoltre s@`{@dotless{i}}
che la shell tratti tutto
@var{programma} come un solo argomento per @command{awk}, e permettono che
@var{programma} sia pi@`u lungo di una riga.
-@cindex shell, @dfn{script}
-@cindex programmi @command{awk}, eseguire, da @dfn{script} di shell
+@cindex shell @subentry @dfn{script}
+@cindex programmi @command{awk} @subentry eseguire @subentry da @dfn{script}
di shell
Questo formato @`e utile anche per eseguire programmi @command{awk} di
dimensioni piccole o medie da @dfn{script} di shell, perch@'e non richiede
un file separato che contenga il programma @command{awk}. Uno @dfn{script}
@@ -2718,8 +2718,8 @@ brevi, scritti sulla riga di comando.
@subsection Senza uso di file in input (input immesso da tastiera)
@cindex standard input
-@cindex input, standard
-@cindex file in input, eseguire @command{awk} senza usarli
+@cindex input @subentry standard
+@cindex input @subentry eseguire @command{awk} senza usare
Si pu@`o anche eseguire @command{awk} senza indicare alcun file in input. Se
si immette la seguente riga di comando:
@@ -2733,9 +2733,8 @@ che di solito significa qualsiasi cosa venga immesso
dalla tastiera.
Ci@`o prosegue finch@'e non si segnala una fine-file battendo @kbd{Ctrl-d}.
(In sistemi operativi non-POSIX, il carattere di fine-file pu@`o essere
diverso.)
-@cindex input, file in, si veda file in input
-@cindex file in input, eseguire @command{awk} senza usarli
-@cindex programmi @command{awk}, eseguire, senza file in input
+@cindex input @subentry eseguire @command{awk} senza usare
+@cindex programmi @command{awk} @subentry eseguire @subentry senza file in
input
Per esempio, il seguente programma stampa un consiglio da amico
(dalla @cite{Guida galattica per gli autostoppisti} di Douglas Adams ),
per non lasciarsi spaventare dalle complessit@`a della programmazione per
@@ -2783,9 +2782,10 @@ $ @kbd{awk '@{ print @}'}
@node Lunghi
@subsection Eseguire programmi lunghi
-@cindex programmi @command{awk}, eseguire
-@cindex programmi @command{awk}, lunghi
-@cindex file, programmi @command{awk} in
+@cindex programmi @command{awk} @subentry eseguire
+@cindex programmi @command{awk} @subentry lunghi
+@cindex programmi @command{awk} @subentry in file
+@cindex file @subentry programmi @command{awk} in
Talora i programmi @command{awk} sono molto lunghi. In tali situazioni
conviene mettere il programma in un file separato. Per dire ad
@command{awk} di usare quel file come programma, digitare:
@@ -2794,8 +2794,9 @@ conviene mettere il programma in un file separato. Per
dire ad
awk -f @var{file-sorgente} @var{input-file1} @var{input-file2} @dots{}
@end example
-@cindex @option{-f}, opzione
-@cindex riga di comando, opzione @option{-f}
+@cindex @option{-f} (opzione)
+@cindex opzione @subentry @option{-f}
+@cindex riga di comando @subentry opzione @option{-f}
L'opzione @option{-f} dice al comando @command{awk} di ottenere il programma
@command{awk} dal file @var{file-sorgente} (@pxref{Opzioni}).
Ogni @value{FN} pu@`o essere usato come @var{file-sorgente}. Per esempio, si
@@ -2819,7 +2820,7 @@ equivale al comando:
awk 'BEGIN @{ print \"Non v\47allarmate!\" @}'
@end example
-@cindex protezione, nella riga di comando di @command{gawk}
+@cindex protezione @subentry nella riga di comando di @command{gawk}
@noindent
Questo @`e gi@`a stato spiegato prima
(@pxref{Leggere dal terminale}).
@@ -2832,8 +2833,8 @@ di comando di @command{awk}.
(Inoltre, se il programma si trova in un file, @`e possibile usare un apice
singolo all'interno del programma, invece del magico @samp{\47}.)
-@cindex apice singolo (@code{'}), nella riga di comando di @command{gawk}
-@cindex @code{'} (apice singolo), nella riga di comando di @command{gawk}
+@cindex apice singolo (@code{'}) @subentry nella riga di comando di
@command{gawk}
+@cindex @code{'} (apice singolo) @subentry nella riga di comando di
@command{gawk}
Per identificare chiaramente un file di programma @command{awk} come tale,
si pu@`o aggiungere il suffisso @file{.awk} al @value{FN}. Ci@`o non
cambia l'esecuzione del programma @command{awk} ma semplifica
@@ -2842,9 +2843,9 @@ la ``manutenzione''.
@node @dfn{Script} eseguibili
@subsection Programmi @command{awk} da eseguire come @dfn{script}
@cindex programmi @command{awk}
-@cindex @code{#} (cancelletto), @code{#!} (@dfn{script} eseguibili)
-@cindex Unix, @dfn{script} @command{awk} e
-@cindex cancelletto (@code{#}), @code{#!} (@dfn{script} eseguibili)
+@cindex @code{#} (cancelletto) @subentry @code{#!} (@dfn{script} eseguibili)
+@cindex Unix @subentry @dfn{script} @command{awk} e
+@cindex cancelletto (@code{#}) @subentry @code{#!} (@dfn{script} eseguibili)
Una volta familiarizzato con @command{awk}, si potrebbero scrivere
@dfn{script} che richiamano @command{awk}, usando il meccanismo di
@@ -2883,7 +2884,7 @@ programma che gli utenti possono richiamare senza dover
essere informati che
il programma @`e scritto in @command{awk}.
@sidebar Comprendere @samp{#!}
-@cindex portabilit@`a, @code{#!} (@dfn{script} eseguibili)
+@cindex portabilit@`a @subentry @code{#!} (@dfn{script} eseguibili)
@command{awk} @`e un linguaggio @dfn{interpretato}. Ci@`o significa che il
comando @command{awk} legge il programma dell'utente e poi elabora i dati
@@ -2911,14 +2912,15 @@ Non si dovrebbero mettere altri argomenti oltre al
primo nella riga @samp{#!}
dopo il percorso del comando @command{awk}. Non funziona. Il sistema
operativo tratta il resto della riga come un argomento solo, e lo passa ad
@command{awk}.
-Cos@`{@dotless{i}} facendo il comportamento sar@`a poco chiaro; con ogni
probabilit@`a un
+Cos@`{@dotless{i}} facendo il comportamento sar@`a poco chiaro; con ogni
+probabilit@`a verr@`a emesso un
messaggio di errore di qualche tipo da @command{awk}.
-@cindex variabili @code{ARGC}/@code{ARGV}, portabilit@`a e
-@cindex portabilit@`a, variabile @code{ARGV}
+@cindex variabile @subentry @code{ARGC}/@code{ARGV} @subentry portabilit@`a e
+@cindex portabilit@`a @subentry variabile @code{ARGV}
+@cindex angolo buio @subentry @code{ARGV}, valore della variabile
+@cindex angolo buio @subentry variabile @subentry @code{ARGV}, valore
Infine, il valore di @code{ARGV[0]}
-@cindex angolo buio, @code{ARGV}, valore della variabile
-@cindex angolo buio, variabile @code{ARGV}, valore
(@pxref{Variabili predefinite})
pu@`o variare a seconda del sistema operativo.
Alcuni sistemi ci mettono @samp{awk}, altri il nome completo del percorso
@@ -2930,10 +2932,10 @@ per ottenere il nome del proprio @dfn{script}.
@node Commenti
@subsection Documentare programmi @command{gawk}.
-@cindex @code{#} (cancelletto), commentare
-@cindex cancelletto (@code{#}), commentare
-@cindex commentare
-@cindex programmi @command{awk}, documentazione
+@cindex @code{#} (cancelletto) @subentry commentare
+@cindex cancelletto (@code{#}) @subentry commentare
+@cindex commenti
+@cindex programmi @command{awk} @subentry documentazione dei
Un @dfn{commento} @`e del testo incluso in un programma per aiutare le
persone che lo leggeranno; non @`e parte del programma eseguibile vero e
@@ -2959,9 +2961,9 @@ digitare direttamente da tastiera, ma ci@`o solitmanete
non serve molto; il
fine di un commento @`e di aiutare l'utente o qualcun altro a comprendere il
programma, quando lo rilegge in un secondo tempo.
-@cindex protezione, per piccoli programmi awk
-@cindex apice singolo (@code{'}), vs.@: apostrofo
-@cindex @code{'} (apice singolo), vs.@: apostrofo
+@cindex protezione @subentry per piccoli programmi awk
+@cindex apice singolo (@code{'}) @subentry vs.@: apostrofo
+@cindex @code{'} (apice singolo) @subentry vs.@: apostrofo
@quotation ATTENZIONE
Come detto in
@ref{Monouso},
@@ -3005,7 +3007,7 @@ La prossima @value{SUBSECTION} descrive le regole di
protezione della shell.
@node Protezione
@subsection Uso di apici nella shell.
-@cindex shell, uso di apici, regole per
+@cindex shell @subentry protezione @subentry regole per
@menu
* Doppi apici in DOS:: Passaggio di apici in file .BAT Windows.
@@ -3023,8 +3025,8 @@ di shell di maggiori dimensioni:
awk '@var{testo del programma}' @var{input-file1} @var{input-file2} @dots{}
@end example
-@cindex shell, uso di apici, regole per
-@cindex Bourne shell, uso di apici, regole per la
+@cindex shell @subentry protezione @subentry regole per
+@cindex Bourne shell @subentry protezione @subentry regole per la
Quando si lavora con la shell, non guasta avere una conoscenza
di base sulle regole per l'uso di apici nella shell. Le regole
seguenti valgono solo per shell in stile Bourne (come Bash, la
@@ -3063,10 +3065,10 @@ lo protegge. La shell toglie la barra inversa e passa
il carattere
protetto al comando.
@item
-@cindex @code{\} (barra inversa), nei comandi di shell
-@cindex barra inversa (@code{\}), nei comandi di shell
-@cindex apice singolo (@code{'}), nei comandi di shell
-@cindex @code{'} (apice singolo), nei comandi di shell
+@cindex @code{\} (barra inversa) @subentry nei comandi di shell
+@cindex barra inversa (@code{\}) @subentry nei comandi di shell
+@cindex apice singolo (@code{'}) @subentry nei comandi di shell
+@cindex @code{'} (apice singolo) @subentry nei comandi di shell
Gli apici singoli proteggono qualsiasi cosa sia inclusa tra un apice di
apertura e uno di chiusura.
La shell non interpreta il testo protetto, il quale viene passato
cos@`{@dotless{i}} com'@`e
@@ -3077,8 +3079,8 @@ apici singoli. Potete trovare in
un esempio di cosa succede se si prova a farlo.
@item
-@cindex doppio apice (@code{"}), nei comandi shell
-@cindex @code{"} (doppio apice), nei comandi shell
+@cindex doppio apice (@code{"}) @subentry nei comandi shell
+@cindex @code{"} (doppio apice) @subentry nei comandi shell
I doppi apici proteggono la maggior parte di quel che @`e racchiuso tra i
doppi apici di apertura e quelli di chiusura.
La shell effettua almeno la sostituzione di variabili e di comandi
@@ -3111,8 +3113,8 @@ $ @kbd{awk "BEGIN @{ print \"Non v'allarmate!\" @}"}
@print{} Non v'allarmate!
@end example
-@cindex apice singolo (@code{'}), con doppio apice
-@cindex @code{'} (apice singolo), con doppio apice
+@cindex apice singolo (@code{'}) @subentry con doppio apice
+@cindex @code{'} (apice singolo) @subentry con doppio apice
Va notato che l'apice singolo non @`e speciale all'interno di un testo
racchiuso tra doppi apici.
@@ -3128,7 +3130,7 @@ awk -F "" '@var{programma}' @var{file} # corretto
@end example
@noindent
-@cindex stringa nulla come argomento a @command{gawk}, protezione della
+@cindex stringa nulla @subentry come argomento a @command{gawk}, protezione
della
Non @`e invece da usare:
@example
@@ -3142,7 +3144,7 @@ Ci@`o come minimo genera un errore di sintassi, e un
comportamento confuso nel
caso peggiore.
@end itemize
-@cindex protezione, nella riga di comando di @command{gawk}, trucchi per la
+@cindex protezione @subentry nella riga di comando di @command{gawk} @subentry
trucchi per la
Mischiare apici singoli e doppi @`e difficile. Occorre utilizzare
trucchi della shell per gli apici, come questi:
@@ -3311,8 +3313,8 @@ seguite da un doppio apice non hanno bisogno di essere
duplicate.
@node File dati di esempio
@section @value{DDF} per gli esempi
-@cindex input file, esempi
-@cindex file di @code{mail-list}
+@cindex input @subentry esempi
+@cindex file @subentry @file{mail-list}
Molti degli esempi in questo @value{DOCUMENT} hanno come input due @value{DF}
di esempio. Il primo, @file{mail-list}, contiene una lista di nomi di
persone, insieme ai loro indirizzi email e a informazioni riguardanti le
@@ -3351,7 +3353,7 @@ Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu
R
@c endfile
@end example
-@cindex file @code{inventory-shipped}
+@cindex file @subentry @file{inventory-shipped}
Il @value{DF} @file{inventory-shipped} contiene
informazioni sulle consegne effettuate durante l'anno.
Ogni record contiene il mese, il numero di contenitori verdi spediti,
@@ -3431,15 +3433,15 @@ $ @kbd{awk '/li/ @{ print $0 @}' mail-list}
@print{} Samuel 555-3430 samuel.lanceolis@@shu.edu A
@end example
-@cindex azioni, default
-@cindex criteri di ricerca, default
+@cindex azioni @subentry default
+@cindex criteri di ricerca @subentry default
In una regola @command{awk}, il criterio di selezione o l'azione possono
essere omessi, ma non entrambi. Se il criterio @`e omesso, l'azione viene
applicata a @emph{ogni} riga dell'input.
Se l'azione viene omessa, per default si stampano tutte le righe che
sono individuate dal criterio di selezione.
-@cindex azioni, omesse
+@cindex azioni @subentry omesse
Quindi, si potrebbe omettere l'azione (l'istruzione @code{print} e le
graffe) nell'esempio precedente e il risultato sarebbe lo stesso:
@command{awk} stampa tutte le righe che corrispondono al criterio di
@@ -3447,7 +3449,7 @@ ricerca @samp{li}. Per confronto, omettendo l'istruzione
@code{print} ma
lasciando le graffe si richiede un'azione nulla, che non fa nulla (cio@`e non
stampa alcuna riga).
-@cindex programmi @command{awk}, esempi molto corti
+@cindex programmi @command{awk} @subentry esempi molto corti
Molti programmi @command{awk} pratici sono lunghi solo una o due righe.
Qui sotto troviamo una collezione di programmi utili e corti, per iniziare.
Alcuni di questi programmi contengono elementi del linguaggio che non sono
@@ -3471,7 +3473,7 @@ awk 'length($0) > 80' data
@end example
L'unica regola presente ha un'espressione di relazione come modello
-e non ha azione---quindi applica l'azione di default, stampando il record.
+e non ha azione --- quindi applica l'azione di default, stampando il record.
@item
Stampare la lunghezza della riga in input pi@`u lunga:
@@ -3479,15 +3481,15 @@ Stampare la lunghezza della riga in input pi@`u lunga:
@example
@group
awk '@{ if (length($0) > max) max = length($0) @}
- END @{ print max @}' data
+END @{ print max @}' data
@end group
@end example
Il codice associato a @code{END} viene eseguito dopo che tutto
l'input @`e stato letto; @`e l'altra faccia della medaglia di @code{BEGIN}.
-@cindex programma @command{expand}
-@cindex @command{expand}, programma
+@cindex programma @subentry @command{expand}
+@cindex @command{expand} (programma)
@item
Stampare la lunghezza della riga pi@`u lunga in @file{data}:
@@ -3640,7 +3642,7 @@ ls -l | awk '$6 == "Nov" @{ somma += $5 @}
END @{ print somma @}'
@end example
-@cindex comando @command{ls}
+@cindex comando @subentry @command{ls}
Questo comando stampa il numero totale di byte in tutti i file contenuti
nella directory corrente, la cui data di modifica @`e novembre (di qualsiasi
anno). La parte @w{@samp{ls -l}} dell'esempio @`e un comando di sistema che
@@ -3659,7 +3661,7 @@ ogni file e la data di ultima modifica. Il suo output
@`e del tipo:
@end example
@noindent
-@cindex continuazione di riga, nella C shell
+@cindex continuazione di riga @subentry nella C shell
Il primo campo contiene le autorizzazioni di lettura/scrittura [r/w], il
secondo il numero dei collegamenti al file [cio@`e il numero di nomi con cui
il file @`e conosciuto], e il terzo campo identifica il proprietario del file.
@@ -3670,7 +3672,7 @@ rispettivamente, in cui il file @`e stato modificato.
Infine, il nono campo
contiene il @value{FN}.
@c @cindex automatic initialization
-@cindex inizializzazione automatica
+@cindex inizializzazione @subentry automatica
L'espressione @samp{$6 == "Nov"} nel nostro programma @command{awk} controlla
se il sesto campo dell'output di @w{@samp{ls -l}} corrisponda alla stringa
@samp{Nov}. Ogni volta che una riga ha la stringa
@@ -3697,17 +3699,17 @@ dei rapporti molto utili ed esteticamente gradevoli.
@node Istruzioni/Righe
@section Istruzioni e righe in @command{awk}
@cindex interruzioni di riga
-@cindex andare a capo
+@cindex ritorno a capo
Molto spesso, ogni riga di un programma @command{awk} @`e un'istruzione a s@'e
stante o una regola isolata, come:
@example
awk '/12/ @{ print $0 @}
- /21/ @{ print $0 @}' mail-list inventory-shipped
+/21/ @{ print $0 @}' mail-list inventory-shipped
@end example
-@cindex @command{gawk}, andare a capo
+@cindex @command{gawk} @subentry ritorno a capo
Comunque, @command{gawk} ignora i ritorni a capo dopo ognuno di questi
simboli e istruzioni:
@@ -3724,8 +3726,8 @@ Il cambio di riga dopo @samp{?} e i @samp{:} @`e
un'estensione minore in
@command{gawk}; specificando @option{--posix} come opzione
(@pxref{Opzioni}), quest'estensione non @`e valida.}
-@cindex @code{\} (barra inversa), continuazione di riga e
-@cindex barra inversa (@code{\}), continuazione di riga e
+@cindex @code{\} (barra inversa) @subentry continuazione di riga e
+@cindex barra inversa (@code{\}) @subentry continuazione di riga e
Volendo dividere una sola istruzione su due righe in un punto in cui
andando a capo sarebbe considerata conclusa, @`e possibile @dfn{continuare}
nella riga successiva terminando la prima riga con un carattere di
@@ -3736,11 +3738,11 @@ a una stringa o a un'espressione regolare. Per esempio:
@example
awk '/Questa espressione regolare @`e troppo lunga, quindi\
- la continuiamo sulla riga seguente/ @{ print $1 @}'
+la continuiamo sulla riga seguente/ @{ print $1 @}'
@end example
@noindent
-@cindex portabilit@`a, continuazione di riga con barra inversa e
+@cindex portabilit@`a @subentry continuazione di riga con barra inversa e
Non abbiamo quasi mai usato la continuazione tramite barra inversa nei nostri
programmi di esempio. @command{gawk} non pone limiti alla lunghezza di
una riga, quindi la continuazione tramite barra inversa non @`e mai
strettamente
@@ -3759,9 +3761,9 @@ mezzo di un'espressione regolare o di una stringa.
@c 10/2000: gawk, mawk, and current bell labs awk allow it,
@c solaris 2.7 nawk does not. Solaris /usr/xpg4/bin/awk does though! sigh.
-@cindex comando @command{csh}
-@cindex barra inversa (@code{\}), continuazione di riga e, in @command{csh}
-@cindex @code{\} (barra inversa), continuazione di riga e, in @command{csh}
+@cindex comando @subentry @command{csh}
+@cindex barra inversa (@code{\}) @subentry continuazione di riga e @subentry
in @command{csh}
+@cindex @code{\} (barra inversa) @subentry continuazione di riga e @subentry
in @command{csh}
@quotation ATTENZIONE
@emph{la continuazione tramite barra inversa non funziona come sopra descritto
nella C shell.} Funziona per programmi @command{awk} contenuti in file e
@@ -3802,9 +3804,9 @@ criterio di selezione e azione su righe separate, si
@emph{deve} usare la continuazione tramite barra inversa; non si pu@`o fare
diversamente.
-@cindex barra inversa (@code{\}), continuazione di riga, commenti e
-@cindex @code{\} (barra inversa), continuazione di riga, commenti e
-@cindex commenti, continuazione di riga con barra inversa e i
+@cindex barra inversa (@code{\}) @subentry continuazione di riga e @subentry
commenti
+@cindex @code{\} (barra inversa) @subentry continuazione di riga e @subentry
commenti
+@cindex commenti @subentry continuazione di riga con barra inversa e
Un'altra cosa da tener presente @`e che la continuazione tramite barra inversa
e
i commenti non possono essere frammisti. Non appena @command{awk} incontra
un @samp{#} che inizia un commento, ignora @emph{tutto} il resto della riga.
@@ -3826,11 +3828,11 @@ successiva. Invece, la combinazione barra
inversa-ritorno a capo non viene
per nulla notata, in quanto ``nascosta'' all'interno del commento. Quindi,
il @code{BEGIN} @`e marcato come errore di sintassi.
-@cindex istruzioni multiple
-@cindex @code{;} (punto e virgola), separare istruzioni nelle azioni
-@cindex punto e virgola (@code{;}), separare istruzioni nelle azioni
-@cindex @code{;} (punto e virgola), separare regole
-@cindex punto e virgola (@code{;}), separare regole
+@cindex istruzioni @subentry multiple
+@cindex @code{;} (punto e virgola) @subentry separare istruzioni nelle azioni
+@cindex punto e virgola (@code{;}) @subentry separare istruzioni nelle azioni
+@cindex @code{;} (punto e virgola) @subentry separare regole
+@cindex punto e virgola (@code{;}) @subentry separare regole
Quando le istruzioni @command{awk} all'interno di una regola sono brevi, si
potrebbe metterne pi@`u d'una su una riga sola. Ci@`o @`e possibile separando
le
istruzioni con un punto e virgola (@samp{;}).
@@ -3883,7 +3885,7 @@ descritte sistematicamente in @ref{Variabili predefinite}
e in
@node Quando
@section Quando usare @command{gawk}
-@cindex @command{awk}, uso di
+@cindex @command{awk} @subentry uso di
Ora che abbiamo visto qualcosa di quel che @command{awk} @`e in grado di fare,
ci si potr@`a chiedere come @command{awk} potrebbe tornare utile. Usando
programmi di utilit@`a, criteri di ricerca sofisticati, separatori
@@ -3902,7 +3904,7 @@ e buttati via. Poich@'e i programmi @command{awk} sono
interpretati, si pu@`o
evitare la (normalmente laboriosa) parte di compilazione nel ciclo tipico
dello sviluppo software, ossia edita-compila-prova-correggi.
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
In @command{awk} sono stati scritti programmi complessi, compreso un assembler
completo, pluri-piattaforma per
@ifclear FOR_PRINT
@@ -3921,7 +3923,7 @@ al linguaggio Prolog.
Le possibilit@`a dell'originale @command{awk} erano messe a dura prova
da programmi di questa complessit@`a, ma le versioni moderne sono pi@`u
robuste.
-@cindex programmi @command{awk}, complessi
+@cindex programmi @command{awk} @subentry complessi
Se capita di scrivere programmi @command{awk} pi@`u lunghi di, diciamo,
qualche centinaio di righe, si potrebbe considerare la possibilit@`a di usare
un linguaggio di programmazione differente da @command{awk}.
@@ -4011,10 +4013,10 @@ tranquillamente saltare.
@node Riga di comando
@section Come eseguire @command{awk}
-@cindex riga di comando, eseguire @command{awk} da
-@cindex @command{awk}, eseguire
-@cindex argomenti, riga di comando, eseguire @command{awk}
-@cindex opzioni sulla riga di comando, eseguire @command{awk}
+@cindex riga di comando @subentry eseguire @command{awk} da
+@cindex @command{awk} @subentry eseguire
+@cindex argomenti @subentry riga di comando @subentry eseguire @command{awk}
+@cindex opzioni @subentry sulla riga di comando @subentry per eseguire
@command{awk}
Ci sono due modi di eseguire @command{awk}: con un programma esplicito o con
uno o pi@`u file di programma. Qui @`e mostrata la sintassi di entrambi; le
voci
@@ -4025,22 +4027,24 @@ racchiuse tra [@dots{}] sono opzionali:
@command{awk} [@var{opzioni}] [@option{--}] @code{'@var{programma}'}
@var{file} @dots{}
@end display
-@cindex GNU, opzioni estese
-@cindex estese, opzioni
-@cindex opzioni estese
+@cindex GNU @subentry opzioni estese sulla riga di comando
+@cindex estese @subentry opzioni
+@cindex opzioni @subentry estese GNU
In aggiunta alle tradizionali opzioni di una sola lettera in stile POSIX,
@command{gawk} consente anche le opzioni estese GNU.
-@cindex angolo buio, invocare @command{awk}
-@cindex @dfn{lint}, controlli con programma vuoto
+@cindex angolo buio @subentry invocare @command{awk}
+@cindex @dfn{lint} @subentry controlli @subentry con programma vuoto
+@cindex controllo @subentry @dfn{lint} @subentry con programma vuoto
@`E possibile invocare @command{awk} con un programma vuoto:
@example
awk '' file_dati_1 file_dati_2
@end example
-@cindex @option{--lint}, opzione
-@cindex angolo buio, programmi vuoti
+@cindex @option{--lint} (opzione)
+@cindex opzione @subentry @option{--lint}
+@cindex angolo buio @subentry programmi vuoti
@noindent
Fare cos@`{@dotless{i}} ha comunque poco senso; @command{awk} termina
silenziosamente quando viene fornito un programma vuoto.
@@ -4051,10 +4055,10 @@ che il programma @`e vuoto.
@node Opzioni
@section Opzioni sulla riga di comando
-@cindex opzioni sulla riga di comando
-@cindex riga di comando, opzioni
-@cindex GNU, opzioni estese
-@cindex opzioni estese
+@cindex opzioni @subentry sulla riga di comando
+@cindex riga di comando @subentry opzioni
+@cindex GNU @subentry opzioni estese sulla riga di comando
+@cindex opzioni @subentry estese GNU
Le opzioni sono precedute da un trattino e consistono in un unico carattere.
Le opzioni estese in stile GNU sono precedute da un doppio trattino e
@@ -4067,7 +4071,7 @@ dell'argomento sono separati da spazi.
Se un'opzione con un valore viene immessa pi@`u di una volta,
l'ultimo valore @`e quello che conta.
-@cindex POSIX @command{awk}, opzioni estese GNU e
+@cindex POSIX @command{awk} @subentry opzioni estese GNU
Ogni opzione estesa di @command{gawk} ha una corrispondente opzione
breve in stile POSIX.
Le opzioni estese e brevi sono
@@ -4077,17 +4081,21 @@ L'elenco seguente descrive le opzioni richieste dallo
standard POSIX:
@table @code
@item -F @var{fs}
@itemx --field-separator @var{fs}
-@cindex @option{-F}, opzione
-@cindex @option{--field-separator}, opzione
-@cindex @code{FS}, variabile, l'opzione @code{--field-separator} e
+@cindex @option{-F} (opzione)
+@cindex opzione @subentry @option{-F}
+@cindex @option{--field-separator} (opzione)
+@cindex opzione @subentry @option{--field-separator}
+@cindex @code{FS} (variabile) @subentry l'opzione @code{--field-separator} e
Imposta la variabile @code{FS} a @var{fs}
(@pxref{Separatori di campo}).
@item -f @var{file-sorgente}
@itemx --file @var{file-sorgente}
-@cindex @option{-f}, opzione
-@cindex @option{--file}, opzione
-@cindex @command{awk}, programmi, collocazione dei
+@cindex @option{-f} (opzione)
+@cindex opzione @subentry @option{-f}
+@cindex @option{--file} (opzione)
+@cindex opzione @subentry @option{--file}
+@cindex programmi @command{awk} @subentry collocazione dei
Legge il sorgente del programma @command{awk} da @var{file-sorgente}
anzich@'e prenderlo dal primo argomento che non @`e un'opzione.
Quest'opzione pu@`o essere data pi@`u volte; il programma @command{awk}
@@ -4101,9 +4109,11 @@ informazioni.
@item -v @var{var}=@var{val}
@itemx --assign @var{var}=@var{val}
-@cindex @option{-v}, opzione
-@cindex @option{--assign}, opzione
-@cindex variabili, impostazione
+@cindex @option{-v} (opzione)
+@cindex opzione @subentry @option{-v}
+@cindex @option{--assign} (opzione)
+@cindex opzione @subentry @option{--assign}
+@cindex variabili @subentry impostazione
Imposta la variabile @var{var} al valore @var{val} @emph{prima} che inizi
l'esecuzione del programma. Tali valori di variabile sono disponibili
all'interno della regola @code{BEGIN}
@@ -4114,8 +4124,8 @@ essere usata pi@`u di una volta, impostando ogni volta
una variabile
differente, in questo modo:
@samp{awk @w{-v pippo=1} @w{-v pluto=2} @dots{}}.
-@cindex predefinite, variabili, opzione @code{-v}@comma{} impostare con
-@cindex variabili predefinite, impostare con opzione @code{-v}
+@cindex predefinita @subentry variabile @subentry impostare con opzione
@code{-v}
+@cindex variabili @subentry predefinite @subentry impostare con opzione
@code{-v}
@quotation ATTENZIONE
Usare @option{-v} per impostare valori di variabili predefinite
pu@`o condurre a risultati sorprendenti. @command{awk} reimposter@`a i
@@ -4124,7 +4134,8 @@ eventuali valori iniziali che possono essere stati
assegnati.
@end quotation
@item -W @var{gawk-opt}
-@cindex @option{-W}, opzione
+@cindex @option{-W} (opzione)
+@cindex opzione @subentry @option{-W}
Fornisce un'opzione specifica dell'implementazione. Questa @`e la convenzione
POSIX per fornire opzioni specifiche dell'implementazione.
Queste opzioni
@@ -4135,15 +4146,15 @@ L'elenco completo delle opzioni specifiche di
@command{gawk} @`e riportato di
seguito.
@item --
-@cindex riga di comando, opzioni, fine delle
-@cindex opzioni sulla riga di comando, fine delle
+@cindex riga di comando @subentry opzioni @subentry fine delle
+@cindex opzioni @subentry sulla riga di comando @subentry fine delle
Segnale della fine delle opzioni da riga di comando. I seguenti argomenti
non sono trattati come opzioni anche se iniziano con @samp{-}. Questa
interpretazione di @option{--} segue le convenzioni POSIX per l'analisi degli
argomenti.
-@cindex @code{-} (meno), nomi di file che iniziano con
-@cindex meno (@code{-}), nomi di file che iniziano con
+@cindex @code{-} (meno) @subentry nomi di file che iniziano con
+@cindex meno (@code{-}) @subentry nomi di file che iniziano con
@`E utile se si hanno @value{FNS} che iniziano con @samp{-},
o negli @dfn{script} di shell, se si hanno @value{FNS} che devono essere
specificati dall'utente che potrebbero iniziare con @samp{-}.
@@ -4157,8 +4168,10 @@ L'elenco che segue descrive le opzioni specifiche di
@command{gawk}:
@table @asis
@item @option{-b}
@itemx @option{--characters-as-bytes}
-@cindex @option{-b}, opzione
-@cindex @option{--characters-as-bytes}, opzione
+@cindex @option{-b} (opzione)
+@cindex opzione @subentry @option{-b}
+@cindex @option{--characters-as-bytes} (opzione)
+@cindex opzione @subentry @option{--characters-as-bytes}
Fa s@`{@dotless{i}} che @command{gawk} tratti tutti i dati in input come
caratteri di un solo
byte. In aggiunta, tutto l'output scritto con @code{print} o @code{printf}
viene trattato come composto da caratteri contenuti in un solo byte.
@@ -4174,9 +4187,11 @@ multibyte validi. Quest'opzione @`e una maniera facile
di dire a @command{gawk}:
@item @option{-c}
@itemx @option{--traditional}
-@cindex @option{-c}, opzione
-@cindex @option{--traditional}, opzione
-@cindex modalit@`a compatibile di (@command{gawk}), specificare
+@cindex @option{-c} (opzione)
+@cindex opzione @subentry @option{-c}
+@cindex @option{--traditional} (opzione)
+@cindex opzione @subentry @option{--tradizional}
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry specificare
Specifica la @dfn{modalit@`a di compatibilit@`a}, nella quale le estensioni
GNU al
linguaggio @command{awk} sono disabilitate; in questo modo @command{gawk} si
comporta proprio come la versione di BWK @command{awk}.
@@ -4190,27 +4205,31 @@ Si veda anche
@item @option{-C}
@itemx @option{--copyright}
-@cindex @option{-C}, opzione
-@cindex @option{--copyright}, opzione
-@cindex GPL (General Public License), stampare
+@cindex @option{-C} (opzione)
+@cindex opzione @subentry @option{-C}
+@cindex @option{--copyright} (opzione)
+@cindex opzione @subentry @option{--copyright}
+@cindex GPL (General Public License) @subentry stampare
Stampa la versione ridotta della General Public License ed esce.
@item @option{-d}[@var{file}]
@itemx @option{--dump-variables}[@code{=}@var{file}]
-@cindex @option{-d}, opzione
-@cindex @option{--dump-variables}, opzione
+@cindex @option{-d} (opzione)
+@cindex opzione @subentry @option{-d}
+@cindex @option{--dump-variables} (opzione)
+@cindex opzione @subentry @option{--dump-variables}
@cindex fornire una lista di tutte le variabili del programma
-@cindex @file{awkvars.out}, file
-@cindex file @file{awkvars.out}
-@cindex variabili globali, stampare una lista delle
+@cindex @file{awkvars.out} @subentry file
+@cindex file @subentry @file{awkvars.out}
+@cindex variabili @subentry globali @subentry stampare una lista delle
Stampa una lista ordinata di variabili globali, i loro tipi, e i valori finali
in @var{file}. Se non viene fornito alcun @var{file}, stampa questa lista
in un file chiamato @file{awkvars.out} nella directory corrente.
Non sono consentiti spazi tra @option{-d} e @var{file}, se
@var{file} viene specificato.
-@cindex risoluzione di problemi, refusi@comma{} variabili globali
-@cindex problemi, risoluzione di, refusi@comma{} variabili globali
+@cindex risoluzione di problemi @subentry refusi @subentry variabili globali
+@cindex problemi @subentry risoluzione di @subentry refusi, variabili globali
Avere una lista di tutte le variabili globali @`e un buon modo per cercare
refusi nei propri programmi.
Si pu@`o usare quest'opzione anche se si ha un grosso programma con tantissime
@@ -4221,9 +4240,11 @@ semplici come @code{i}, @code{j}, etc.).
@item @option{-D}[@var{file}]
@itemx @option{--debug}[@code{=}@var{file}]
-@cindex @option{-D}, opzione
-@cindex @option{--debug}, opzione
-@cindex @command{awk}, debug, abilitare
+@cindex @option{-D} (opzione)
+@cindex opzione @subentry @option{-D}
+@cindex @option{--debug} (opzione)
+@cindex opzione @subentry @option{--debug}
+@cindex @command{awk} @subentry debug, abilitare
Abilita l'esecuzione del debug di programmi @command{awk}
(@pxref{Debugging}).
Per default, il debugger legge i comandi interattivamente dalla tastiera
@@ -4235,9 +4256,11 @@ Non sono consentiti spazi tra @option{-D} e @var{file},
se
@item @option{-e} @var{testo-del-programma}
@itemx @option{--source} @var{testo-del-programma}
-@cindex @option{-e}, opzione
-@cindex @option{--source}, opzione
-@cindex codice sorgente, combinare
+@cindex @option{-e} (opzione)
+@cindex opzione @subentry @option{-e}
+@cindex @option{--source} (opzione)
+@cindex opzione @subentry @option{--source}
+@cindex codice sorgente @subentry combinare
Fornisce del codice sorgente nel @var{testo-del-programma}.
Quest'opzione consente di combinare il codice sorgente contenuto in file
col codice sorgente immesso sulla riga di comando.
@@ -4272,9 +4295,11 @@ informazioni.
@item @option{-E} @var{file}
@itemx @option{--exec} @var{file}
-@cindex @option{-E}, opzione
-@cindex @option{--exec}, opzione
-@cindex @command{awk}, programmi, collocazione dei
+@cindex @option{-E} (opzione)
+@cindex opzione @subentry @option{-E}
+@cindex @option{--exec} (opzione)
+@cindex opzione @subentry @option{--exec}
+@cindex programmi @command{awk} @subentry collocazione dei
@cindex CGI, @command{awk} @dfn{script} per
Simile a @option{-f}, legge il testo del programma @command{awk} da
@var{file}. Ci sono due differenze rispetto a @option{-f}:
@@ -4311,10 +4336,12 @@ con @dfn{script} @samp{#!}
@item @option{-g}
@itemx @option{--gen-pot}
-@cindex @option{-g}, opzione
-@cindex @option{--gen-pot}, opzione
-@cindex portabilit@`a, generare file oggetto
-@cindex file oggetto portabili, generare
+@cindex @option{-g} (opzione)
+@cindex opzione @subentry @option{-g}
+@cindex @option{--gen-pot} (opzione)
+@cindex opzione @subentry @option{--gen-pot}
+@cindex portabilit@`a @subentry generare file oggetto
+@cindex file @subentry oggetto portabili @subentry generare
Analizza il programma sorgente e
genera un file GNU @command{gettext} @dfn{portable object template} sullo
standard output per tutte le costanti di tipo stringa che sono state marcate
@@ -4324,19 +4351,23 @@ per informazioni su quest'opzione.
@item @option{-h}
@itemx @option{--help}
-@cindex @option{-h}, opzione
-@cindex @option{--help}, opzione
-@cindex GNU, opzioni estese, stampare una lista di
-@cindex opzioni, stampare una lista di
-@cindex stampa, lista di opzioni
+@cindex @option{-h} (opzione)
+@cindex opzione @subentry @option{-h}
+@cindex @option{--help} (opzione)
+@cindex opzione @subentry @option{--help}
+@cindex GNU @subentry opzioni estese sulla riga di comando @subentry stampare
una lista di
+@cindex opzioni @subentry stampare una lista di
+@cindex stampa @subentry lista di opzioni
Stampa un messaggio sull'``uso'' riassumendo le opzioni brevi ed estese
accettate da @command{gawk} ed esce.
@item @option{-i} @var{file-sorgente}
@itemx @option{--include} @var{file-sorgente}
-@cindex @option{-i}, opzione
-@cindex @option{--include}, opzione
-@cindex @command{awk}, programmi, collocazione dei
+@cindex @option{-i} (opzione)
+@cindex opzione @subentry @option{-i}
+@cindex @option{--include} (opzione)
+@cindex opzione @subentry @option{--include}
+@cindex programmi @command{awk} @subentry collocazione dei
Legge una libreria di sorgenti @command{awk} da @var{file-sorgente}.
Quest'opzione @`e del tutto equivalente a usare la direttiva @code{@@include}
all'interno del proprio programma. @`E molto simile all'opzione
@@ -4356,9 +4387,12 @@ informazioni.
@item @option{-l} @var{ext}
@itemx @option{--load} @var{ext}
-@cindex @option{-l}, opzione
-@cindex @option{--load}, opzione
+@cindex @option{-l} (opzione)
+@cindex opzione @subentry @option{-l}
+@cindex @option{--load} (opzione)
+@cindex opzione @subentry @option{--load}
@cindex caricare estensioni
+@cindex estensioni @subentry caricare
Carica un'estensione dinamica denominata @var{ext}. Le estensioni sono
memorizzate come librerie condivise di sistema.
Quest'opzione ricerca la libreria usando la variabile d'ambiente
@@ -4372,10 +4406,12 @@ condivisa. Questa funzionalit@`a avanzata @`e
descritta in dettaglio in
@item @option{-L}[@var{valore}]
@itemx @option{--lint}[@code{=}@var{valore}]
-@cindex @option{-l}, opzione
-@cindex @option{--lint}, opzione
-@cindex @dfn{lint}, controlli, emissione di avvertimenti
-@cindex avvertimenti, emissione di
+@cindex @option{-L} (opzione)
+@cindex opzione @subentry @option{-L}
+@cindex @option{--lint} (opzione)
+@cindex opzione @subentry @option{--lint}
+@cindex @dfn{lint} @subentry controlli @subentry emissione di avvertimenti
+@cindex avvertimenti @subentry emissione di
Emette messaggi d'avvertimento relativi a costrutti dubbi o non portabili ad
altre implementazioni di @command{awk}.
Non sono consentiti spazi tra @option{-L} e @var{valore}, se
@@ -4400,8 +4436,10 @@ brevi, questa non @`e un'operazione gravosa.
@item @option{-M}
@itemx @option{--bignum}
-@cindex @option{-M}, opzione
-@cindex @option{--bignum}, opzione
+@cindex @option{-M} (opzione)
+@cindex opzione @subentry @option{-M}
+@cindex @option{--bignum} (opzione)
+@cindex opzione @subentry @option{--bignum}
Chiede il calcolo con precisione arbitraria sui numeri. Quest'opzione non ha
alcun effetto se @command{gawk} non @`e compilato per l'uso delle librerie GNU
MPFR e MP
@@ -4409,11 +4447,15 @@ MPFR e MP
@item @option{-n}
@itemx @option{--non-decimal-data}
-@cindex @option{-n}, opzione
-@cindex @option{--non-decimal-data}, opzione
-@cindex esadecimali@comma{} valori, abilitare l'interpretazione di
-@cindex ottali@comma{} valori, abilitare l'interpretazione di
-@cindex risoluzione di problemi, opzione @code{--non-decimal-data}
+@cindex @option{-n} (opzione)
+@cindex opzione @subentry @option{-n}
+@cindex @option{--non-decimal-data} (opzione)
+@cindex opzione @subentry @option{--non-decimal-data}
+@cindex esadecimali @subentry numeri @subentry abilitare l'interpretazione di
+@cindex valori @subentry esadecimali @subentry abilitare l'interpretazione di
+@cindex ottali @subentry numeri @subentry abilitare l'interpretazione di
+@cindex valori @subentry ottali @subentry abilitare l'interpretazione di
+@cindex risoluzione di problemi @subentry opzione @code{--non-decimal-data}
Abilita l'interpretazione automatica di valori ottali ed esadecimali
nei dati di input
(@pxref{Dati non decimali}).
@@ -4427,8 +4469,10 @@ quest'opzione potrebbe non essere pi@`u disponibile in
una futura versione di
@item @option{-N}
@itemx @option{--use-lc-numeric}
-@cindex @option{-N}, opzione
-@cindex @option{--use-lc-numeric}, opzione
+@cindex @option{-N} (opzione)
+@cindex opzione @subentry @option{-N}
+@cindex @option{--use-lc-numeric} (opzione)
+@cindex opzione @subentry @option{--use-lc-numeric}
Forza l'uso del carattere di separazione decimale della localizzazione
quando analizza i dati in input
(@pxref{Localizzazioni}).
@@ -4436,8 +4480,10 @@ quando analizza i dati in input
@cindex stampa elegante
@item @option{-o}[@var{file}]
@itemx @option{--pretty-print}[@code{=}@var{file}]
-@cindex @option{-o}, opzione
-@cindex @option{--pretty-print}, opzione
+@cindex @option{-o} (opzione)
+@cindex opzione @subentry @option{-o}
+@cindex @option{--pretty-print} (opzione)
+@cindex opzione @subentry @option{--pretty-print}
Consente la stampa di una versione formattata elegantemente dei programmi
@command{awk}. Implica l'opzione @option{--no-optimize}.
Per default il programma di output viene creato in un file
@@ -4454,8 +4500,10 @@ Ora non @`e pi@`u cos@`{@dotless{i}}.
@item @option{-O}
@itemx @option{--optimize}
-@cindex @option{--optimize}, opzione
-@cindex @option{-O}, opzione
+@cindex @option{-O} (opzione)
+@cindex opzione @subentry @option{-O}
+@cindex @option{--optimize} (opzione)
+@cindex opzione @subentry @option{--optimize}
Abilita le ottimizzazioni di default nella rappresentazione interna del
programma. Attualmente, questo comprende solo delle semplificazioni nell'uso
di costanti.
@@ -4467,9 +4515,11 @@ opzione @option{-s} (si veda pi@`u sotto in questa
lista).
@item @option{-p}[@var{file}]
@itemx @option{--profile}[@code{=}@var{file}]
-@cindex @option{-p}, opzione
-@cindex @option{--profile}, opzione
-@cindex @command{awk}, profilazione, abilitare la
+@cindex @option{-p} (opzione)
+@cindex opzione @subentry @option{-p}
+@cindex @option{--profile} (opzione)
+@cindex opzione @subentry @option{--profile}
+@cindex @command{awk} @subentry profilazione, abilitare la
Abilita la creazione del profilo di esecuzione di programmi @command{awk}
(@pxref{Profilare}).
Implicitamente viene forzata l'opzione @option{--no-optimize}.
@@ -4484,10 +4534,13 @@ sinistro e il conteggio delle chiamate di funzione per
ogni funzione.
@item @option{-P}
@itemx @option{--posix}
-@cindex @option{-P}, opzione
-@cindex @option{--posix}, opzione
-@cindex POSIX, modalit@`a
-@cindex @command{gawk}, estensioni@comma{} disabilitare
+@cindex @option{-P} (opzione)
+@cindex opzione @subentry @option{-P}
+@cindex @option{--posix} (opzione)
+@cindex opzione @subentry @option{--posix}
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX
+@cindex @command{gawk} @subentry estensioni, disabilitare
Opera in modalit@`a POSIX rigorosa. Disabilita tutte le estensioni di
@command{gawk} (proprio come @option{--traditional}) e
disabilita tutte le estensioni non consentite da POSIX.
@@ -4501,21 +4554,21 @@ restrizioni:
@itemize @value{BULLET}
@cindex ritorno a capo
-@cindex spazi vuoti, ritorno a capo invece che
+@cindex spazi vuoti @subentry ritorno a capo come
@item
I ritorni a capo non sono consentiti dopo @samp{?} o @samp{:}
(@pxref{Espressioni condizionali}).
-@cindex @code{FS}, variabile, carattere TAB come
-@cindex variabile @code{FS}, carattere TAB come
+@cindex @code{FS} (variabile) @subentry carattere TAB come
+@cindex variabile @subentry @code{FS} @subentry carattere TAB come
@item
Specificando @samp{-Ft} sulla riga di comando non si imposta il valore
della variabile @code{FS} a un singolo carattere TAB
(@pxref{Separatori di campo}).
-@cindex localizzazione, separatore decimale della
-@cindex separatore decimale, carattere, specifico della localizzazione
+@cindex localizzazione @subentry separatore decimale della
+@cindex separatore decimale @subentry carattere specifico della localizzazione
@item
Il carattere di separatore decimale della localizzazione @`e usato per
analizzare
i dati di input
@@ -4524,17 +4577,21 @@ i dati di input
@c @cindex automatic warnings
@c @cindex warnings, automatic
-@cindex @option{--traditional}, opzione, e opzione @code{--posix}
-@cindex @option{--posix}, opzione, e opzione @code{--traditional}
+@cindex @option{--traditional} (opzione) @subentry e opzione @code{--posix}
+@cindex opzione @subentry @option{--traditional} @subentry e opzione
@code{--posix}
+@cindex @option{--posix} (opzione) @subentry e opzione @code{--traditional}
+@cindex opzione @subentry @option{--posix} @subentry e opzione
@code{--traditional}
Se si forniscono entrambe le opzioni @option{--traditional} e @option{--posix}
sulla riga di comando, @option{--posix} ha la precedenza. Se vengono fornite
entrambe le opzioni @command{gawk} emette un avviso.
@item @option{-r}
@itemx @option{--re-interval}
-@cindex @option{-r}, opzione
-@cindex @option{--re-interval}, opzione
-@cindex espressioni regolari, espressioni di intervallo e
+@cindex @option{-r} (opzione)
+@cindex opzione @subentry @option{-r}
+@cindex @option{--re-interval} (opzione)
+@cindex opzione @subentry @option{--re-interval}
+@cindex espressioni regolari @subentry espressioni di intervallo e
Consente le espressioni di intervallo
(@pxref{Operatori di espressioni regolari})
nelle espressioni regolari.
@@ -4544,21 +4601,23 @@ che per l'uso in combinazione con
@option{--traditional}).
@item @option{-s}
@itemx @option{--no-optimize}
-@cindex @option{--no-optimize}, opzione
-@cindex opzione @option{--no-optimize}
-@cindex @option{-s}, opzione,
-@cindex opzione @option{-s}
+@cindex @option{-s} (opzione)
+@cindex opzione @subentry @option{-s}
+@cindex @option{--no-optimize} (opzione)
+@cindex opzione @subentry @option{--no-optimize}
Disabilita le opzioni di ottimizzazione di default di @command{gawk}
effettuate sulla rappresentazione interna del programma.
@item @option{-S}
@itemx @option{--sandbox}
-@cindex @option{-S}, opzione
-@cindex @option{--sandbox}, opzione
-@cindex sandbox, modalit@`a
-@cindex prova, modalit@`a di
-@cindex @code{ARGV}, vettore
-@cindex vettore @code{ARGV}
+@cindex @option{-S} (opzione)
+@cindex opzione @subentry @option{-S}
+@cindex @option{--sandbox} (opzione)
+@cindex opzione @subentry @option{--sandbox}
+@cindex @dfn{sandbox} @subentry modalit@`a
+@cindex prova @subentry modalit@`a di
+@cindex @code{ARGV} (vettore)
+@cindex vettore @subentry @code{ARGV}
Disabilita la funzione @code{system()},
la ridirezione dell'input con @code{getline},
la ridirezione dell'output con @code{print} e @code{printf},
@@ -4571,37 +4630,50 @@ accesso al sistema (oltre al @value{DF} di input
specificato).
@item @option{-t}
@itemx @option{--lint-old}
-@cindex @option{-L}, opzione
-@cindex @option{--lint-old}, opzione
+@cindex @option{-t} (opzione)
+@cindex opzione @subentry @option{-t}
+@cindex @option{--lint-old} (opzione)
+@cindex opzione @subentry @option{--lint-old}
Avvisa su costrutti che non sono disponibili nella versione originale di
@command{awk} dalla versione 7 di Unix
(@pxref{V7/SVR3.1}).
@item @option{-V}
@itemx @option{--version}
-@cindex @option{-V}, opzione
-@cindex @option{--version}, opzione
-@cindex @command{gawk}, versioni di, informazioni su@comma{} stampa
+@cindex @option{-V} (opzione)
+@cindex opzione @subentry @option{-V}
+@cindex @option{--version} (opzione)
+@cindex opzione @subentry @option{--version}
+@cindex @command{gawk} @subentry versione di @subentry stampa informazioni su
Stampa informazioni sulla versione di questa specifica copia di @command{gawk}.
Consente di determinare se la copia di @command{gawk} in uso @`e aggiornata
rispetto a quello che @`e attualmente in distribuzione da parte della Free
Software Foundation.
@`E utile anche per la segnalazione di bug
(@pxref{Bug}).
+
+@cindex @code{-} (meno) @subentry @code{--} marcatore della fine delle opzioni
+@cindex meno (@code{-}) @subentry @code{--} marcatore della fine delle opzioni
+@item @code{--}
+Marca la fine di tutte le opzioni.
+Ogni argomento sulla riga di comando che segue @code{--} viene messo
+nel vettore @code{ARGV}, anche se inizia con il segno meno (@code{-}).
@end table
Ogni altra opzione, se @`e stato specificato il testo di un programma
@`e contrassegnata come non valida con un messaggio di avvertimento,
altrimenti @`e ignorata.
-@cindex @option{-F}, opzione, opzione @option{-Ft} imposta @code{FS} a TAB
+@cindex @option{-F} (opzione) @subentry @option{-Ft} imposta @code{FS} a TAB
+@cindex opzione @subentry @option{-F} @subentry opzione @option{-Ft} imposta
@code{FS} a TAB
In modalit@`a di compatibilit@`a, come caso particolare, se il valore di
@var{fs}
fornito all'opzione @option{-F} @`e @samp{t}, @code{FS} @`e impostata al
carattere
TAB (@code{"\t"}). Questo @`e vero solo per @option{--traditional} e non
per @option{--posix}
(@pxref{Separatori di campo}).
-@cindex @option{-f}, opzione, usi multipli
+@cindex @option{-f} (opzione) @subentry usi multipli
+@cindex opzione @subentry @option{-f} @subentry usi multipli
L'opzione @option{-f} pu@`o essere usata pi@`u di una volta nella riga di
comando.
In questo caso, @command{awk} legge il sorgente del suo programma da tutti i
file indicati, come se fossere concatenati assieme a formare un unico grande
@@ -4631,7 +4703,8 @@ facilmente codice sorgente da riga di comando e da
libreria
Come per @option{-f}, le opzioni @option{-e} e @option{-i}
si possono usare pi@`u volte nella riga di comando.
-@cindex @option{-e}, opzione
+@cindex @option{-e} (opzione)
+@cindex opzione @subentry @option{-e}
Se non sono specificate le opzioni @option{-f} o @option{-e},
@command{gawk} usa il primo argomento diverso da un'opzione,
presente sulla riga di comando, come testo del codice sorgente
@@ -4640,9 +4713,12 @@ dopo il testo del programma sono inseriti nel vettore
@code{ARGV};
@command{awk} @emph{non} continua ad analizzare la riga di comando
alla ricerca di ulteriori opzioni.
-@cindex @env{POSIXLY_CORRECT}, variabile d'ambiente
-@cindex @dfn{lint}, controlli, variabile d'ambiente @env{POSIXLY_CORRECT}
-@cindex POSIX, modalit@`a
+@cindex @env{POSIXLY_CORRECT} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{POSIXLY_CORRECT}
+@cindex @dfn{lint} @subentry controlli @env{POSIXLY_CORRECT} (variabile
d'ambiente)
+@cindex controllo @subentry @dfn{lint} @subentry @env{POSIXLY_CORRECT}
(variabile d'ambiente)
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX
Se la variabile d'ambiente @env{POSIXLY_CORRECT} esiste,
@command{gawk} si comporta in modalit@`a POSIX rigorosa, esattamente come se
fosse stata fornita l'opzione @option{--posix}.
@@ -4663,7 +4739,7 @@ POSIXLY_CORRECT=true
export POSIXLY_CORRECT
@end example
-@cindex @command{csh}, comando, variabile d'ambiente @env{POSIXLY_CORRECT}
+@cindex @command{csh} (comando di utilit@`a) @subentry variabile d'ambiente
@env{POSIXLY_CORRECT}
Per una shell compatibile con C,@footnote{Non raccomandato.}
questa riga andr@`a aggiunta nel file @file{.login} nella directory "home"
dell'utente:
@@ -4672,20 +4748,20 @@ dell'utente:
setenv POSIXLY_CORRECT true
@end example
-@cindex portabilit@`a, variabile d'ambiente @env{POSIXLY_CORRECT}
+@cindex portabilit@`a @subentry variabile d'ambiente @env{POSIXLY_CORRECT}
Avere @env{POSIXLY_CORRECT} impostata non @`e raccomandato per l'uso
quotidiano,
ma @`e utile per provare la portabilit@`a dei programmi su altri
ambienti.
@node Altri argomenti
@section Altri argomenti della riga di comando
-@cindex riga di comando, argomenti
-@cindex argomenti, riga di comando
+@cindex riga di comando @subentry argomenti
+@cindex argomenti @subentry riga di comando
Qualsiasi altro argomento sulla riga di comando @`e trattato normalmente come
file in input da elaborare nell'ordine con cui @`e specificato. Comunque, un
argomento che ha la forma @code{@var{var}=@var{valore}}, assegna
-il valore @var{valore} alla variabile @var{var}---non specifica affatto
+il valore @var{valore} alla variabile @var{var} --- non specifica affatto
un file. (Si veda @ref{Opzioni di assegnamento}.) Nel seguente esempio,
@var{count=1} @`e un assegnamento di variabile, non un @value{FN}:
@@ -4703,10 +4779,10 @@ questione andr@`a fatto precedere da @samp{./}, come
nell'esempio seguente:
awk -f programma.awk file1 ./count=1 file2
@end example
-@cindex @command{gawk}, variabile @code{ARGIND} in
-@cindex @code{ARGIND}, variabile, argomenti da riga di comando
-@cindex @code{ARGV}, vettore, indicizzare all'interno di
-@cindex @code{ARGC}/@code{ARGV}, variabili, argomenti da riga di comando
+@cindex @command{gawk} @subentry @code{ARGIND} (variabile) in
+@cindex @code{ARGIND} (variabile) @subentry argomenti da riga di comando
+@cindex @code{ARGV} (vettore) @subentry indicizzare all'interno di
+@cindex @code{ARGC}/@code{ARGV} (variabili) @subentry argomenti da riga di
comando
Tutti gli argomenti da riga di comando sono resi disponibili al programma
@command{awk} nel vettore @code{ARGV} (@pxref{Variabili predefinite}).
Opzioni da
riga di comando e il testo del programma (se presente) sono esclusi da
@@ -4720,8 +4796,8 @@ La modifica di @code{ARGC} e @code{ARGV} nel proprio
programma @command{awk}
consente di controllare come @command{awk} elabora i file in input; questo @`e
descritto pi@`u dettagliatamente in @ref{ARGC e ARGV}.
-@cindex file in input, assegnamenti di variabile e
-@cindex assegnamenti di variabile e file in input
+@cindex input @subentry assegnamenti di variabile e
+@cindex assegnamento @subentry di variabile e file in input
La distinzione tra argomenti che sono @value{FN} e argomenti di assegnamento
di variabili vien fatta quando @command{awk} deve aprire il successivo file di
input.
@@ -4737,7 +4813,7 @@ all'interno di una regola @code{BEGIN}
poich@'e tali regole vengono eseguite prima che @command{awk} cominci a
esaminare la lista degli argomenti.
-@cindex angolo buio, sequenze di protezione
+@cindex angolo buio @subentry sequenze di protezione
I valori delle variabili dati sulla riga di comando sono elaborati per
rimuovere sequenze di protezione (@pxref{Sequenze di protezione}).
@value{DARKCORNER}
@@ -4756,13 +4832,13 @@ applicazioni che dipendevano dal vecchio comportamento.
La funzionalit@`a dell'assegnamento di variabile @`e molto utile per assegnare
valori a variabili come @code{RS}, @code{OFS}, e @code{ORS}, che controllano i
formati di input e di output, prima di effettuare la scansione dei @value{DF}.
-@`E utile anche per effettuare passaggi multipli su un o stesso
+@`E utile anche per effettuare passaggi multipli su uno stesso
@value{DF}. Per esempio:
-@cindex file, passaggi multipli su
+@cindex file @subentry passaggi multipli su
@example
-awk 'pass == 1 @{ @var{pass 1 stuff} @}
- pass == 2 @{ @var{pass 2 stuff} @}' pass=1 mydata pass=2 mydata
+awk 'pass == 1 @{ @var{istruzioni pass 1} @}
+pass == 2 @{ @var{istruzioni pass 2} @}' pass=1 mydata pass=2 mydata
@end example
Una volta disponibile la funzionalit@`a per assegnare una variabile, l'opzione
@@ -4806,7 +4882,7 @@ operativo rende disponibile il file o no].)
@node Variabili d'ambiente
@section Le variabili d'ambiente usate da @command{gawk}
-@cindex variabili d'ambiente usate da @command{gawk}
+@cindex variabili d'ambiente @subentry usate da @command{gawk}
Diverse variabili d'ambiente influiscono sul comportamento
di @command{gawk}.
@@ -4821,11 +4897,12 @@ di @command{gawk}.
@node AWKPATH (Variabile)
@subsection Ricerca di programmi @command{awk} in una lista di directory.
-@cindex @env{AWKPATH}, variabile d'ambiente
-@cindex directory, ricerca di file sorgente
-@cindex percorso di ricerca per file sorgente
-@cindex ricerca, percorso di, per file sorgente
-@cindex differenze tra @command{awk} e @command{gawk}, variabile d'ambiente
@env{AWKPATH}
+@cindex @env{AWKPATH} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{AWKPATH}
+@cindex directory @subentry ricerca di file sorgente
+@cindex percorso di ricerca @subentry per file sorgente
+@cindex ricerca @subentry percorso di, per file sorgente
+@cindex differenze tra @command{awk} e @command{gawk} @subentry @env{AWKPATH}
(variabile d'ambiente)
@ifinfo
Il precedente @value{SECTION} ha descritto come i file di programma di
@command{awk} possono essere specificati sulla riga di comando con
@@ -4919,10 +4996,10 @@ e @command{gawk} non ha pi@`u bisogno di usare
@env{AWKPATH}.
@node AWKLIBPATH (Variabile)
@subsection Ricerca di librerie condivise @command{awk} su varie directory.
-@cindex @env{AWKLIBPATH}, variabile d'ambiente
-@cindex directory, ricerca di estensioni caricabili
-@cindex percorso di ricerca per estensioni
-@cindex differenze tra @command{awk} e @command{gawk}, variabile d'ambiente
@code{AWKLIBPATH}
+@cindex @env{AWKLIBPATH} (variabile d'ambiente)
+@cindex directory @subentry ricerca di estensioni caricabili
+@cindex percorso di ricerca @subentry per estensioni
+@cindex differenze tra @command{awk} e @command{gawk} @subentry
@code{AWKLIBPATH} (variabile d'ambiente)
La variabile d'ambiente @env{AWKLIBPATH} @`e simile alla variabile
@env{AWKPATH},
ma @`e usata per ricercare estensioni caricabili (memorizzate come
@@ -5058,8 +5135,8 @@ possibili sprechi di memoria.
@node Codice di ritorno
@section Il codice di ritorno all'uscita da @command{gawk}
-@cindex codice di ritorno, di @command{gawk}
-@cindex stato d'uscita, di @command{gawk}
+@cindex codice di ritorno @subentry di @command{gawk}
+@cindex stato d'uscita @subentry di @command{gawk}
Se l'istruzione @code{exit} viene usata con un valore
(@pxref{Istruzione exit}), @command{gawk} termina l'esecuzione con il valore
numerico specificato.
@@ -5090,9 +5167,13 @@ Questo
@value{SECTION} descrive una funzionalit@`a disponibile solo in
@command{gawk}.
-@cindex @code{@@include}, direttiva
-@cindex direttiva @code{@@include}
-@cindex includere file, direttiva @code{@@include}
+@cindex @code{@@} (chiocciola) @subentry @code{@@include} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@include} (direttiva)
+@cindex direttiva @subentry @code{@@include}
+@cindex file @subentry includere, direttiva @code{@@include}
+@cindex caricare estensioni @subentry @code{@@load} (direttiva)
+@cindex estensioni @subentry caricare @subentry @code{@@load} (direttiva)
+@cindex includere file @subentry direttiva @code{@@include}
La direttiva @code{@@include} pu@`o essere usata per leggere file sorgenti
di @command{awk} esterni. Questo d@`a la possibilit@`a di suddividere file
sorgenti di @command{awk} di grandi dimensioni in porzioni pi@`u piccole e
pi@`u
@@ -5110,7 +5191,7 @@ Iniziamo con due @dfn{script} @command{awk} (banali), che
chiameremo
@example
BEGIN @{
- print "Questo @`e lo script test1."
+print "Questo @`e lo script test1."
@}
@end example
@@ -5120,7 +5201,7 @@ e questo @`e @file{test2}:
@example
@@include "test1"
BEGIN @{
- print "Questo @`e lo script test2."
+print "Questo @`e lo script test2."
@}
@end example
@@ -5152,7 +5233,7 @@ I file da includere possono essere nidificati; p.es.,
dato un terzo
@group
@@include "test2"
BEGIN @{
- print "Questo @`e lo script test3."
+print "Questo @`e lo script test3."
@}
@end group
@end example
@@ -5231,10 +5312,10 @@ Questo
@value{SECTION} descrive una funzionalit@`a disponibile solo in
@command{gawk}.
-@cindex @code{@@load}, direttiva
-@cindex direttiva @code{@@load}
-@cindex caricare estensioni, direttiva @code{@@load}
-@cindex estensioni, caricamento, direttiva @code{@@load}
+@cindex @code{@@} (chiocciola) @subentry @code{@@load} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@load} (direttiva)
+@cindex caricare estensioni @subentry direttiva @code{@@load}
+@cindex estensioni @subentry caricare @subentry direttiva @code{@@load}
La direttiva @code{@@load} pu@`o essere usata per leggere estensioni di
@command{awk} esterne (memorizzate come librerie condivise di sistema).
Questo consente di collegare del codice compilato che pu@`o offrire prestazioni
@@ -5277,9 +5358,9 @@ che possono essere caricate sia con @code{@@load} che con
l'opzione
@c update this section for each release!
-@cindex opzioni deprecate
-@cindex funzionalit@`a deprecate
-@cindex obsolete, funzionalit@`a
+@cindex opzioni @subentry deprecate
+@cindex funzionalit@`a @subentry deprecate
+@cindex obsolete @subentry funzionalit@`a
@ifnotinfo
Questa
@end ifnotinfo
@@ -5306,8 +5387,8 @@ in case some option becomes obsolete in a future version
of @command{gawk}.
@node Non documentato
@section Opzioni e funzionalit@`a non documentate
-@cindex non documentate, funzionalit@`a
-@cindex funzionalit@`a non documentate
+@cindex non documentate @subentry funzionalit@`a
+@cindex funzionalit@`a @subentry non documentate
@cindex Skywalker, Luke
@cindex Kenobi, Obi-Wan
@cindex jedi, cavalieri
@@ -5317,7 +5398,7 @@ in case some option becomes obsolete in a future version
of @command{gawk}.
@author Obi-Wan
@end quotation
-@cindex conchiglie, mare
+@cindex conchiglie @subentry mare
@ifnotinfo
Questa @value{SECTION} @`e stata lasciata intenzionalmente vuota.
@end ifnotinfo
@@ -5365,7 +5446,7 @@ oppure:
@example
awk '@{ sum += $1 @}
- END @{ print sum @}' data
+END @{ print sum @}' data
@end example
@noindent
@@ -5526,8 +5607,8 @@ Poich@'e le espressioni regolari sono una parte
fondamentale della
programmazione in @command{awk}, il loro formato e il loro uso meritano un
@value{CHAPTER} a s@'e stante.
-@cindex barra (@code{/}), per delimitare le espressioni regolari
-@cindex @code{/} (barra), per delimitare le espressioni regolari
+@cindex barra (@code{/}) @subentry per delimitare le espressioni regolari
+@cindex @code{/} (barra) @subentry per delimitare le espressioni regolari
Un'espressione regolare racchiusa tra barre (@samp{/})
@`e un modello di ricerca @command{awk} che individua tutti i record in input
il cui testo corrisponde al modello stesso.
@@ -5563,8 +5644,8 @@ complesse.
@node Uso di @dfn{regexp}
@section Uso di espressioni regolari
-@cindex criteri di ricerca, espressioni regolari usate come
-@cindex espressioni regolari, come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni regolari come
+@cindex espressioni regolari @subentry come criteri di ricerca
Un'espressione regolare pu@`o essere usata come modello di ricerca
racchiudendola tra barre. L'espressione regolare @`e quindi confrontata
con tutto il testo di ogni record (normalmente, basta che corrisponda a
@@ -5580,21 +5661,21 @@ $ @kbd{awk '/li/ @{ print $2 @}' mail-list}
@print{} 555-3430
@end example
-@cindex espressioni regolari, operatori
-@cindex operatori, ricerca in stringhe
+@cindex espressioni regolari @subentry operatori
+@cindex operatori @subentry ricerca in stringhe
@c @cindex operators, @code{~}
-@cindex ricerca in stringhe, operatori
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
-@c @cindex operatori, @code{!~}
-@cindex @code{if}, istruzione, uso di espressioni regolari in
-@cindex @code{while}, istruzione, uso di espressioni regolari in
-@cindex @code{do}-@code{while}, istruzione, uso di espressioni regolari in
-@c @cindex istruzione @code{if}
-@c @cindex istruzione @code{while}
-@c @cindex istruzione @code{do}
+@cindex ricerca @subentry in stringhe, operatori
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
+@c @cindex operators, @code{!~}
+@cindex @code{if} (istruzione) @subentry uso di espressioni regolari in
+@cindex @code{while} (istruzione) @subentry uso di espressioni regolari in
+@cindex @code{do}-@code{while} (istruzione) @subentry uso di espressioni
regolari in
+@c @cindex statement @code{if}
+@c @cindex statement @code{while}
+@c @cindex statement @code{do}
Espressioni regolari possono anche essere usate in espressioni di confronto.
Queste espressioni consentono di specificare le stringhe da riconoscere;
non devono necessariamente comprendere l'intero record corrente. I due
@@ -5649,9 +5730,9 @@ $ @kbd{awk '$1 !~ /J/' inventory-shipped}
@dots{}
@end example
-@cindex @dfn{regexp}, costanti
-@cindex costanti @dfn{regexp}
-@cindex espressioni regolari, costanti, si veda costanti @dfn{regexp}
+@cindex @dfn{regexp} @subentry costanti
+@cindex costanti @subentry @dfn{regexp}
+@cindex espressioni regolari @subentry costanti @seeentry{costanti
@dfn{regexp}}
Quando una @dfn{regexp} @`e racchiusa tra barre, come @code{/pippo/}, la
chiamiamo
una @dfn{costante regexp}, proprio come @code{5.27} @`e una costante
numerica e @code{"pippo"} @`e una costante [di tipo] stringa.
@@ -5659,9 +5740,10 @@ numerica e @code{"pippo"} @`e una costante [di tipo]
stringa.
@node Sequenze di protezione
@section Sequenze di protezione
-@cindex sequenze di protezione, in stringhe
-@cindex barra inversa (@code{\}), in sequenze di protezione
-@cindex @code{\} (barra inversa), in sequenze di protezione
+@cindex sequenze di protezione
+@cindex sequenze di protezione @subentry in stringhe
+@cindex barra inversa (@code{\}) @subentry in sequenze di protezione
+@cindex @code{\} (barra inversa) @subentry in sequenze di protezione
Alcuni caratteri non possono essere inclusi letteralmente in costanti
stringa (@code{"pippo"}) o in costanti @dfn{regexp} (@code{/pippo/}).
Vanno invece rappresentati usando @dfn{sequenze di protezione},
@@ -5691,50 +5773,51 @@ tutte le sequenze di protezione usate in @command{awk} e
cosa rappresentano. Se non @`e detto altrimenti, tutte queste sequenze di
protezione valgono sia per costanti stringa che per costanti @dfn{regexp}:
+@cindex ASCII
@table @code
@item \\
Barra inversa letterale, @samp{\}.
@c @cindex @command{awk} language, V.4 version
-@cindex @code{\} (barra inversa), @code{\a}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\a}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\a} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\a} (sequenza di protezione)
@item \a
Il carattere ``campanello'', @kbd{Ctrl-g}, codice ASCII 7 (BEL).
(Spesso genera qualche tipo di segnale sonoro udibile.)
-@cindex @code{\} (barra inversa), @code{\b}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\b}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\b} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\b} (sequenza di protezione)
@item \b
Barra inversa, @kbd{Ctrl-h}, codice ASCII 8 (BS).
-@cindex @code{\} (barra inversa), @code{\f}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\f}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\f} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\f} (sequenza di protezione)
@item \f
Nuova pagina, @kbd{Ctrl-l}, codice ASCII 12 (FF).
-@cindex @code{\} (barra inversa), @code{\n}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\n}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\n} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\n} (sequenza di protezione)
@item \n
A-capo, @kbd{Ctrl-j}, codice ASCII 10 (LF).
-@cindex @code{\} (barra inversa), @code{\r}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\r}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\r} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\r} (sequenza di protezione)
@item \r
Ritorno-a-capo, @kbd{Ctrl-m}, codice ASCII 13 (CR).
-@cindex @code{\} (barra inversa), @code{\t}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\t}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\t} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\t} (sequenza di protezione)
@item \t
Tabulazione orizzontale, @kbd{Ctrl-i}, codice ASCII 9 (HT).
@c @cindex @command{awk} language, V.4 version
-@cindex @code{\} (barra inversa), @code{\v}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\v}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\v} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\v} (sequenza di protezione)
@item \v
Tabulazione verticale, @kbd{Ctrl-k}, codice ASCII 11 (VT).
-@cindex @code{\} (barra inversa), @code{\}@var{nnn}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\}@var{nnn}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\}@var{nnn} (sequenza di
protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\}@var{nnn} (sequenza di
protezione)
@item \@var{nnn}
Il valore ottale @var{nnn}, dove @var{nnn} pu@`o essere da 1 a 3 cifre ottali,
tra @samp{0} e @samp{7}. Per esempio, il codice per il carattere ASCII ESC
@@ -5742,10 +5825,10 @@ tra @samp{0} e @samp{7}. Per esempio, il codice per il
carattere ASCII ESC
@c @cindex @command{awk} language, V.4 version
@c @cindex @command{awk} language, POSIX version
-@cindex @code{\} (barra inversa), @code{\x}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\x}, sequenza di protezione
-@cindex comuni, estensioni@comma{} @code{\x}, sequenza di protezione
-@cindex estensioni comuni, @code{\x}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\x} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\x} (sequenza di protezione)
+@cindex comuni @subentry estensioni @subentry @code{\x}, sequenza di protezione
+@cindex estensioni comuni @subentry @code{\x} (sequenza di protezione)
@item \x@var{hh}@dots{}
Il valore esadecimale @var{hh}, dove @var{hh} indica una sequenza di cifre
esadecimali (@samp{0}--@samp{9}, e @samp{A}--@samp{F}
@@ -5765,8 +5848,8 @@ Dalla @value{PVERSION} 4.2,
vengono elaborate solo due cifre.
@end quotation
-@cindex @code{\} (barra inversa), @code{\/}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\/}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\/} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\/} (sequenza di protezione)
@item \/
Una barra (necessario solo per costanti @dfn{regexp}).
Questa sequenza si usa per inserire una costante @dfn{regexp}
@@ -5784,8 +5867,8 @@ Poich@'e una @dfn{regexp} @`e racchiusa tra
barre, si deve proteggere ogni barra che sia parte dell'espressione, per dire
ad @command{awk} di andare avanti a scandire il resto della @dfn{regexp}.
-@cindex @code{\} (barra inversa), @code{\"}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\"}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\"} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\"} (sequenza di protezione)
@item \"
Un doppio apice (necessario solo per costanti stringa).
Questa sequenza si usa per inserire in una costante stringa il carattere
@@ -5807,27 +5890,27 @@ significa che il carattere seguente dovrebbe essere
preso letteralmente,
anche se normalmente sarebbe un operatore di @dfn{regexp}. Per esempio,
@code{/a\+b/} individua i tre caratteri @samp{a+b}.
-@cindex barra inversa (@code{\}), in sequenze di protezione
-@cindex @code{\} (barra inversa), in sequenze di protezione
+@cindex barra inversa (@code{\}) @subentry in sequenze di protezione
+@cindex @code{\} (barra inversa) @subentry in sequenze di protezione
@cindex portabilit@`a
Per una completa portabilit@`a, non usare una barra inversa prima di qualsiasi
carattere non incluso nella lista precedente, o che non sia un operatore.
@c 11/2014: Moved so as to not stack sidebars
@sidebar Barra inversa prima di un carattere normale
-@cindex portabilit@`a, barra inversa in sequenze di protezione
-@cindex POSIX @command{awk}, barre inverse in costanti stringa
-@cindex barra inversa (@code{\}), in sequenze di protezione, POSIX e
-@cindex @code{\} (barra inversa), in sequenze di protezione, POSIX e
+@cindex portabilit@`a @subentry barra inversa in sequenze di protezione
+@cindex POSIX @command{awk} @subentry barre inverse in costanti stringa
+@cindex barra inversa (@code{\}) @subentry in sequenze di protezione @subentry
POSIX e
+@cindex @code{\} (barra inversa) @subentry in sequenze di protezione @subentry
POSIX e
-@cindex risoluzione di problemi, barra inversa prima di caratteri non speciali
-@cindex problemi, risoluzione di, barra inversa prima di caratteri non speciali
+@cindex risoluzione di problemi @subentry barra inversa prima di caratteri non
speciali
+@cindex problemi @subentry risoluzione di @subentry barra inversa prima di
caratteri non speciali
Se si mette una barra inversa in una costante stringa prima di qualcosa che
non sia uno dei caratteri elencati sopra, POSIX @command{awk} di proposito
lascia indefinito il comportamento. Ci sono due possibilit@`a:
@c @cindex automatic warnings
@c @cindex warnings, automatic
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
@table @asis
@item Togliere la barra inversa
Questo @`e quel che sia BWK @command{awk} che @command{gawk} fanno.
@@ -5840,10 +5923,11 @@ occorre mettere due barre inverse nella stringa:
@samp{FS = @w{"[ \t]+\\|[ \t]+"}}.)
@c I did this! This is why I added the warning.
-@cindex @command{gawk}, sequenze di protezione
-@cindex Unix @command{awk}, barre inverse in sequenze di protezione
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex @command{gawk} @subentry sequenze di protezione
+@cindex @command{gawk} @subentry sequenze di protezione @seealso{barra inversa}
+@cindex Unix @command{awk} @subentry barra inversa in sequenze di protezione
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
@item Tenere la barra inversa cos@`{@dotless{i}} com'@`e.
Alcune altre implementazioni di @command{awk} fanno questo.
In quelle implementazioni, immettere @code{"a\qc"} equivale a immettere
@@ -5870,7 +5954,7 @@ carattere letteralmente.
@end itemize
@sidebar Sequenze di protezione per metacaratteri
-@cindex metacaratteri, sequenze di protezione per
+@cindex metacaratteri @subentry sequenze di protezione per
Supponiamo che si usi una protezione ottale o esadecimale
per rappresentare un metacarattere di @dfn{regexp}
@@ -5878,7 +5962,7 @@ per rappresentare un metacarattere di @dfn{regexp}
@command{awk} considera il carattere come un carattere letterale o
come un operatore di @dfn{regexp}?
-@cindex angolo buio, sequenze di protezione, per metacaratteri
+@cindex angolo buio @subentry sequenze di protezione @subentry per
metacaratteri
Storicamente, tali caratteri erano considerati letteralmente.
@value{DARKCORNER}
Invece, lo standard POSIX richiede che siano considerati
@@ -5891,8 +5975,8 @@ letteramente, quando sono usati in costanti @dfn{regexp}.
Quindi,
@node Operatori di espressioni regolari
@section Operatori di espressioni regolari
-@cindex espressioni regolari, operatori
-@cindex metacaratteri in espressioni regolari
+@cindex espressioni regolari @subentry operatori
+@cindex metacaratteri @subentry in espressioni regolari
@`E possibile inserire in espressioni regolari dei caratteri speciali,
detti @dfn{operatori di espressioni regolari} o @dfn{metacaratteri}, per
@@ -5920,18 +6004,17 @@ di protezione e che non sono elencati qui rappresentano
se stessi:
@c Use @asis so the docbook comes out ok. Sigh.
@table @asis
-@cindex barra inversa (@code{\}), operatore @dfn{regexp}
-@cindex barra inversa (@code{\}), operatore @dfn{regexp}
-@cindex @code{\} (barra inversa), operatore @dfn{regexp}
+@cindex barra inversa (@code{\}) @subentry operatore @dfn{regexp}
+@cindex @code{\} (barra inversa) @subentry operatore @dfn{regexp}
@item @code{\}
Si usa per togliere il significato speciale a un carattere quando si effettuano
confronti. Per esempio, @samp{\$}
individua il carattere @samp{$}.
-@cindex espressioni regolari, ancore nelle
-@cindex Texinfo, inizi di capitolo nei file
-@cindex @code{^} (circonflesso), operatore @dfn{regexp}
-@cindex circonflesso (@code{^}), operatore @dfn{regexp}
+@cindex espressioni regolari @subentry @`ancore nelle
+@cindex Texinfo @subentry inizi di capitolo nei file
+@cindex @code{^} (circonflesso) @subentry operatore @dfn{regexp}
+@cindex circonflesso (@code{^}) @subentry operatore @dfn{regexp}
@item @code{^}
Si usa per indicare l'inizio di una stringa. Per esempio, @samp{^@@chapter}
individua @samp{@@chapter} all'inizio di una stringa e si pu@`o usare per
@@ -5947,8 +6030,8 @@ di una stringa. La condizione non @`e verificata
nell'esempio seguente:
if ("riga1\nRIGA 2" ~ /^R/) @dots{}
@end example
-@cindex @code{$} (dollaro), operatore @dfn{regexp}
-@cindex dollaro (@code{$}), operatore @dfn{regexp}
+@cindex @code{$} (dollaro) @subentry operatore @dfn{regexp}
+@cindex dollaro (@code{$}) @subentry operatore @dfn{regexp}
@item @code{$}
Simile a @samp{^}, ma serve a indicare la fine di una stringa.
Per esempio, @samp{p$}
@@ -5962,8 +6045,8 @@ La condizione nell'esempio seguente non @`e verificata:
if ("riga1\nRIGA 2" ~ /1$/) @dots{}
@end example
-@cindex @code{.} (punto), operatore @dfn{regexp}
-@cindex punto (@code{.}), operatore @dfn{regexp}
+@cindex @code{.} (punto) @subentry operatore @dfn{regexp}
+@cindex punto (@code{.}) @subentry operatore @dfn{regexp}
@item @code{.} (punto)
Individua un qualsiasi carattere,
@emph{incluso} il carattere di ritorno a capo. Per esempio, @samp{.P}
@@ -5972,7 +6055,9 @@ Usando la concatenazione, si pu@`o formare un'espressione
regolare come
@samp{U.A}, che individua qualsiasi sequenza di tre caratteri che inizia con
@samp{U} e finisce con @samp{A}.
-@cindex POSIX @command{awk}, uso del punto (@code{.})
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX
+@cindex POSIX @command{awk} @subentry uso del punto (@code{.})
In modalit@`a POSIX stretta (@pxref{Opzioni}),
@samp{.} non individua il carattere @sc{nul},
ossia il carattere con tutti i bit uguali a zero.
@@ -5980,17 +6065,17 @@ In altri contesti, @sc{nul} @`e solo un carattere
qualsiasi. Altre versioni
di @command{awk} possono non essere in grado di individuare il carattere
@sc{nul}.
-@cindex @code{[]} (parentesi quadre), operatore @dfn{regexp}
-@cindex parentesi quadre (@code{[]}), operatore @dfn{regexp}
-@cindex espressioni tra parentesi
-@cindex insiemi di caratteri, si veda anche espressioni tra parentesi quadre
-@cindex liste di caratteri, si veda espressioni tra parentesi quadre
-@cindex classi di caratteri, si veda espressioni tra parentesi quadre
+@cindex @code{[]} (parentesi quadre) @subentry operatore @dfn{regexp}
+@cindex parentesi @subentry quadre (@code{[]}) @subentry operatore @dfn{regexp}
+@cindex espressioni @subentry tra parentesi quadre
+@cindex insiemi di caratteri (in espressioni regolari) @seeentry{espressioni
tra parentesi quadre}
+@cindex liste di caratteri @seeentry{espressioni tra parentesi quadre}
+@cindex classi di caratteri @seeentry{espressioni tra parentesi quadre}
@item @code{[}@dots{}@code{]}
Questa @`e chiamata una @dfn{espressione tra parentesi quadre}.@footnote{In
altri testi, un'espressione tra parentesi quadre potrebbe essere
definita come @dfn{insieme di caratteri}, @dfn{classe di caratteri} o
- @dfn{lista di caratteri}.}
+@dfn{lista di caratteri}.}
Individua @emph{uno} qualsiasi dei caratteri racchiusi tra
parentesi quadre. Per esempio, @samp{[MVX]} individua uno qualsiasi
dei caratteri @samp{M}, @samp{V}, o @samp{X} in una stringa. Una spiegazione
@@ -5998,7 +6083,7 @@ esauriente di quel che si pu@`o mettere all'interno di
un'espressione tra
parentesi quadre @`e data in
@ref{Espressioni tra parentesi quadre}.
-@cindex espressioni tra parentesi quadre, complementate
+@cindex espressioni @subentry tra parentesi quadre @subentry complementate
@item @code{[^}@dots{}@code{]}
Questa @`e una @dfn{espressione tra parentesi quadre complementata}. Il primo
carattere dopo la @samp{[} @emph{deve} essere un @samp{^}. Individua
@@ -6019,8 +6104,8 @@ qualsiasi posizione al suo interno) una vocale inglese
minuscola.
L'alternativa si applica alle @dfn{regexp} pi@`u ampie individuabili in ogni
lato.
-@cindex @code{()} (parentesi), operatore @dfn{regexp}
-@cindex parentesi (@code{()}), operatore @dfn{regexp}
+@cindex @code{()} (parentesi) @subentry operatore @dfn{regexp}
+@cindex parentesi @subentry (@code{()}) @subentry operatore @dfn{regexp}
@item @code{(}@dots{}@code{)}
Le parentesi sono usate per raggruppare, sia nelle espressioni regolari sia
in quelle aritmetiche. Si possono usare per concatenare espressioni regolari
@@ -6039,8 +6124,8 @@ relativa parentesi sinistra; una parentesi destra senza la
corrispondente parentesi sinistra @`e considerata (senza dare
alcun messaggio di avviso) come un normale carattere.
-@cindex @code{*} (asterisco), operatore @code{*}, come operatore @dfn{regexp}
-@cindex asterisco (@code{*}), operatore @code{*}, come operatore @dfn{regexp}
+@cindex @code{*} (asterisco) @subentry operatore @code{*} @subentry come
operatore @dfn{regexp}
+@cindex asterisco (@code{*}) @subentry operatore @code{*} @subentry come
operatore @dfn{regexp}
@item @code{*}
Questo simbolo richiede che la precedente espressione regolare sia
ripetuta tante volte quanto serve per trovare una corrispondenza. Per
@@ -6061,23 +6146,25 @@ Secondo, @samp{*} trova quante pi@`u ripetizioni siano
possibili. Se il testo
da ricercare @`e @samp{phhhhhhhhhhhhhhooey}, @samp{ph*} individua tutte le
@samp{h}.
-@cindex @code{+} (pi@`u), operatore @dfn{regexp}
-@cindex pi@`u (@code{+}), operatore @dfn{regexp}
+@cindex @code{+} (pi@`u) @subentry operatore @dfn{regexp}
+@cindex pi@`u (@code{+}) @subentry operatore @dfn{regexp}
@item @code{+}
Questo simbolo @`e simile a @samp{*}, tranne per il fatto che l'espressione
precedente deve essere trovata almeno una volta. Questo significa che
@samp{wh+y} individuerebbe @samp{why} e @samp{whhy}, ma non @samp{wy}, mentre
@samp{wh*y} li troverebbe tutti e tre.
-@cindex @code{?} (punto interrogativo), operatore @dfn{regexp}
-@cindex punto interrogativo (@code{?}), operatore @dfn{regexp}
+@cindex @code{?} (punto interrogativo) @subentry operatore @dfn{regexp}
+@cindex punto interrogativo (@code{?}) @subentry operatore @dfn{regexp}
@item @code{?}
Questo simbolo @`e simile a @samp{*}, tranne per il fatto che l'espressione che
precede pu@`o essere trovata una volta sola oppure non trovata
affatto. Per esempio, @samp{fe?d}
individua @samp{fed} e @samp{fd}, ma nient'altro.
-@cindex espressioni di intervallo, (@dfn{regexp})
+@cindex @code{@{@}} (parentesi graffe) @subentry operatore @dfn{regexp}
+@cindex parentesi @subentry graffe (@code{@{@}}) @subentry operatore
@dfn{regexp}
+@cindex espressioni @subentry di intervallo @subentry (@dfn{regexp})
@item @code{@{}@var{n}@code{@}}
@itemx @code{@{}@var{n}@code{,@}}
@itemx @code{@{}@var{n}@code{,}@var{m}@code{@}}
@@ -6102,8 +6189,8 @@ Riconosce @samp{whhy}, @samp{whhhy} e cos@`{@dotless{i}}
via.
@end table
@end table
-@cindex precedenza, operatori @dfn{regexp}
-@cindex espressioni regolari, operatori, precedenza degli
+@cindex precedenza @subentry operatori @dfn{regexp}
+@cindex espressioni regolari @subentry operatori @subentry precedenza degli
Nelle espressioni regolari, gli operatori @samp{*}, @samp{+}, e @samp{?},
come pure le parentesi graffe @samp{@{} e @samp{@}},
hanno
@@ -6112,8 +6199,8 @@ la precedenza pi@`u alta, seguite dalla concatenazione, e
poi da
Come nell'algebra, le parentesi possono cambiare il raggruppamento degli
operatori.
-@cindex POSIX @command{awk}, espressioni regolari e
-@cindex @command{gawk}, espressioni regolari, precedenza
+@cindex POSIX @command{awk} @subentry espressioni regolari
+@cindex @command{gawk} @subentry espressioni regolari @subentry precedenza
In POSIX @command{awk} e @command{gawk}, gli operatori @samp{*}, @samp{+}
e @samp{?} rappresentano se stessi quando non c'@`e nulla prima di essi
nella @dfn{regexp}. Per esempio, @code{/+/} individua un semplice segno
@@ -6123,12 +6210,12 @@ tale notazione come un errore di sintassi.
@node Espressioni di intervallo
@subsection Alcune note sulle espressioni di intervallo
-@cindex POSIX @command{awk}, espressioni di intervallo in
+@cindex POSIX @command{awk} @subentry espressioni di intervallo
Le espressioni di intervallo non erano tradizionalmente disponibili in
@command{awk}. Sono state aggiunte come parte dello standard POSIX per
rendere @command{awk} ed @command{egrep} coerenti tra di loro.
-@cindex @command{gawk}, espressioni di intervallo e
+@cindex @command{gawk} @subentry espressioni di intervallo e
In passato, poich@'e vecchi programmi possono usare @samp{@{} e @samp{@}} in
costanti @dfn{regexp},
@command{gawk} @emph{non} riconosceva espressioni di intervallo
@@ -6161,12 +6248,12 @@ eseguito in modalit@`a compatibile (@pxref{Opzioni}).
@node Espressioni tra parentesi quadre
@section Usare espressioni tra parentesi quadre
-@cindex espressioni tra parentesi quadre
-@cindex espressioni tra parentesi quadre, espressioni di intervallo
-@cindex espressioni di intervallo, (@dfn{regexp})
+@cindex espressioni @subentry tra parentesi quadre
+@cindex espressioni @subentry tra parentesi quadre @subentry espressioni di
intervallo
+@cindex espressioni @subentry di intervallo @subentry (@dfn{regexp})
@cindex elenchi di caratteri in espressioni regolari
-@cindex caratteri, elenchi di, in espressioni regolari
-@cindex espressioni regolari, elenchi di caratteri in
+@cindex caratteri @subentry elenchi di, in espressioni regolari
+@cindex espressioni regolari @subentry elenchi di caratteri in
Come detto sopra, un'espressione tra parentesi quadre individua qualsiasi
carattere incluso tra le parentesi quadre aperta e chiusa.
@@ -6192,12 +6279,12 @@ caratteri in cui i punti di inizio e fine
dell'intervello
abbiano valori maggiori di 256, occorre immettere direttamente
le codifiche multi-byte dei caratteri in questione.
-@cindex @code{\} (barra inversa), in espressioni tra parentesi quadre
-@cindex barra inversa (@code{\}), in espressioni tra parentesi quadre
-@cindex @code{^} (circonflesso), in espressioni tra parentesi quadre
-@cindex circonflesso (@code{^}), in espressioni tra parentesi quadre
-@cindex @code{-} (meno), in espressioni tra parentesi quadre
-@cindex meno (@code{-}), in espressioni tra parentesi quadre
+@cindex @code{\} (barra inversa) @subentry in espressioni tra parentesi quadre
+@cindex barra inversa (@code{\}) @subentry in espressioni tra parentesi quadre
+@cindex @code{^} (circonflesso) @subentry in espressioni tra parentesi quadre
+@cindex circonflesso (@code{^}) @subentry in espressioni tra parentesi quadre
+@cindex @code{-} (meno) @subentry in espressioni tra parentesi quadre
+@cindex meno (@code{-}) @subentry in espressioni tra parentesi quadre
Per includere uno dei caratteri @samp{\}, @samp{]}, @samp{-}, o @samp{^} in
un'espressione tra parentesi quadre, occorre inserire un @samp{\} prima del
carattere stesso. Per esempio:
@@ -6212,11 +6299,11 @@ Inoltre, se si mette una @samp{]} subito dopo la
@samp{[} aperta, la parentesi quadra chiusa @`e considerata come uno dei
caratteri da individuare.
-@cindex POSIX @command{awk}, espressioni tra parentesi quadre e
-@cindex espressioni regolari estese (ERE)
+@cindex POSIX @command{awk} @subentry espressioni tra parentesi quadre
+@cindex espressioni regolari @subentry estese (ERE)
@cindex ERE (espressioni regolari estese)
-@cindex @command{egrep}, programma di utilit@`a
-@cindex programma di utilit@`a @command{egrep}
+@cindex @command{egrep} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{egrep}
L'utilizzo di @samp{\} nelle espressioni tra parentesi quadre
@`e compatibile con altre implementazioni di @command{awk} ed @`e anche
richiesto
da POSIX.
@@ -6225,8 +6312,8 @@ specificazioni POSIX per le espressioni regolari estese
(ERE).
Le ERE POSIX sono basate sulle espressioni regolari accettate dal
tradizionale programma di utilit@`a @command{egrep}.
-@cindex espressioni tra parentesi quadre, classi di caratteri
-@cindex POSIX @command{awk}, espressioni tra parentesi quadre e, classi di
caratteri
+@cindex espressioni @subentry tra parentesi quadre @subentry classi di
caratteri
+@cindex POSIX @command{awk} @subentry espressioni tra parentesi quadre
@subentry classi di caratteri
Le @dfn{classi di caratteri} sono una funzionalit@`a introdotta nello standard
POSIX. Una classe di caratteri @`e una particolare notazione per descrivere
liste di caratteri cha hanno un attributo specifico, ma i caratteri
@@ -6284,10 +6371,10 @@ Subject: Re: [bug-gawk] Does gawk character classes
follow this?
> From: address@hidden
> Date: Fri, 15 Feb 2019 03:01:34 -0700
> Cc: address@hidden, address@hidden
->
+>
> I get the feeling that there's something really bothering you, but
> I don't understand what.
->
+>
> Can you clarify, please?
I thought I already did: we cannot be expected to provide a definitive
@@ -6298,6 +6385,7 @@ depends on various factors out of our control.
@c Thanks to
@c Date: Tue, 01 Jul 2014 07:39:51 +0200
@c From: Hermann Peifer <address@hidden>
+@cindex ASCII
Alcuni programmi di utilit@`a che cercano espressioni regolari prevedono
una classe di caratteri, non standard,
@samp{[:ascii:]}; @command{awk} non la prevede. Tuttavia, @`e possibile
ottenere
@@ -6313,9 +6401,9 @@ trattano @code{[:blank:]} come @code{[:space:]},
individuando quindi
pi@`u caratteri del dovuto. Caveat Emptor! [Stia in guardia il compratore!].
@end quotation
-@cindex espressioni tra parentesi quadre, elementi di collazione
-@cindex espressioni tra parentesi quadre, non-ASCII
-@cindex elementi di collazione
+@cindex espressioni @subentry tra parentesi quadre @subentry elementi di
collazione
+@cindex espressioni @subentry tra parentesi quadre @subentry non-ASCII
+@cindex elementi @subentry di collazione
In espressioni tra parentesi quadre possono apparire due ulteriori sequenze
speciali. Riguardano insiemi di caratteri non-ASCII, che possono avere
simboli singoli (chiamati @dfn{elementi di collazione}) che sono rappresentati
@@ -6325,8 +6413,8 @@ equivalenti tra loro ai fini della @dfn{collazione}, o
dell'ordinamento.
sono equivalenti). Queste sequenze sono:
@table @asis
-@cindex espressioni tra parentesi quadre, elementi di collazione
-@cindex elementi di collazione
+@cindex espressioni @subentry tra parentesi quadre @subentry elementi di
collazione
+@cindex elementi @subentry di collazione
@item elementi di collazione
Elementi di collazione multi-byte racchiusi fra
@samp{[.} e @samp{.]}. Per esempio, se @samp{ch} @`e un elemento di
collazione,
@@ -6334,7 +6422,7 @@ Elementi di collazione multi-byte racchiusi fra
collazione, mentre @samp{[ch]} @`e una @dfn{regexp} che individua le lettere
@samp{c} o @samp{h}.
-@cindex espressioni tra parentesi quadre, classi di equivalenza
+@cindex espressioni @subentry tra parentesi quadre @subentry classi di
equivalenza
@item classi di equivalenza
Sono nomi, specifici a una particolare localizzazione, per una lista di
caratteri equivalenti tra loro. Il nome @`e racchiuso fra
@@ -6346,9 +6434,9 @@ che corrisponde a @samp{e}, @samp{@^e}, @samp{@`e} e
@samp{@'e}.
Queste funzionalit@`a sono molto utili in localizzazioni non inglesi.
-@cindex internazionalizzazione, localizzazione, classi di caratteri
-@cindex @command{gawk}, classi di caratteri e
-@cindex POSIX @command{awk}, espressioni tra parentesi quadre e, classi di
caratteri
+@cindex internazionalizzazione @subentry localizzazione @subentry classi di
caratteri
+@cindex @command{gawk} @subentry classi di caratteri e
+@cindex POSIX @command{awk} @subentry espressioni tra parentesi quadre
@subentry classi di caratteri
@quotation ATTENZIONE
Le funzioni di libreria che @command{gawk} usa per individuare le espressioni
regolari per ora riconoscono solo le classi di caratteri POSIX;
@@ -6364,7 +6452,7 @@ caratteri, di simboli di collazione o di una classe di
equivalenza
@node Pi@`u lungo da sinistra
@section Quanto @`e lungo il testo individuato?
-@cindex espressioni regolari, corrispondenza pi@`u a sinistra
+@cindex espressioni regolari @subentry corrispondenza pi@`u a sinistra
@c @cindex matching, leftmost longest
Si consideri il caso seguente:
@@ -6404,12 +6492,12 @@ e anche @pxref{Separatori di campo}).
@node Espressioni regolari calcolate
@section Usare @dfn{regexp} dinamiche
-@cindex espressioni regolari calcolate
-@cindex espressioni regolari dinamiche
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex espressioni regolari @subentry calcolate
+@cindex espressioni regolari @subentry dinamiche
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
@c @cindex operators, @code{~}
@c @cindex operators, @code{!~}
L'espressione a destra di un operatore @samp{~} o @samp{!~} non deve
@@ -6443,11 +6531,11 @@ alla sua destra. Questo vale per ogni espressione
(come la
costanti stringa.
@end quotation
-@cindex costanti @dfn{regexp}, barre vs.@: doppi apici
-@cindex @code{\} (barra inversa), in costanti @dfn{regexp}
-@cindex barra inversa (@code{\}), in costanti @dfn{regexp}
-@cindex @code{"} (doppio apice), in costanti @dfn{regexp}
-@cindex doppio apice (@code{"}), in costanti @dfn{regexp}
+@cindex costanti @subentry @dfn{regexp} @subentry barre vs.@: doppi apici
+@cindex @code{\} (barra inversa) @subentry in costanti @dfn{regexp}
+@cindex barra inversa (@code{\}) @subentry in costanti @dfn{regexp}
+@cindex @code{"} (doppio apice) @subentry in costanti @dfn{regexp}
+@cindex doppio apice (@code{"}) @subentry in costanti @dfn{regexp}
Che differenza fa la doppia scansione di una stringa?
La risposta ha a che vedere con le sequenze di protezione e particolarmente
con le barre inverse. Per inserire una barra inversa in un'espressione
@@ -6461,10 +6549,10 @@ occorre immettere @code{"\\*"}. La prima barra inversa
protegge la
seconda in modo che la stringa in realt@`a contenga i
due caratteri @samp{\} e @samp{*}.
-@cindex risoluzione di problemi, costanti @dfn{regexp} vs.@: costanti stringa
-@cindex problemi, risoluzione di, costanti @dfn{regexp} vs.@: costanti stringa
-@cindex costanti @dfn{regexp}, vs.@: costanti stringa
-@cindex costanti stringa, vs.@: costanti @dfn{regexp}
+@cindex risoluzione di problemi @subentry costanti @dfn{regexp} vs.@: costanti
stringa
+@cindex problemi @subentry risoluzione di @subentry costanti @dfn{regexp}
vs.@: costanti stringa
+@cindex costanti @subentry @dfn{regexp} @subentry vs.@: costanti stringa
+@cindex costanti @subentry stringa @subentry vs.@: costanti @dfn{regexp}
Dato che si possono usare sia costanti @dfn{regexp} che costanti stringa per
descrivere espressioni regolari, qual @`e da preferire? La risposta @`e
``costanti @dfn{regexp}'', per molti motivi:
@@ -6489,8 +6577,8 @@ chiaramente che si vuole una corrispondenza con una
@dfn{regexp}.
@end itemize
@sidebar Usare @code{\n} in espressioni tra parentesi quadre in @dfn{regexp}
dinamiche
-@cindex espressioni regolari dinamiche, contenenti dei ritorni a capo
-@cindex ritorno a capo, in @dfn{regexp} dinamiche
+@cindex espressioni regolari @subentry dinamiche @subentry contenenti dei
ritorni a capo
+@cindex ritorno a capo @subentry in @dfn{regexp} dinamiche
Alcune delle prime versioni di @command{awk} non consentono di usare il
carattere di ritorno a capo
@@ -6506,7 +6594,7 @@ $ @kbd{awk '$0 ~ "[ \t\n]"'}
@error{} $0 ~ "[ >>> \t\n]" <<<
@end example
-@cindex ritorno a capo, in costanti @dfn{regexp}
+@cindex ritorno a capo @subentry in costanti @dfn{regexp}
Ma un ritorno a capo in una costante @dfn{regexp} non d@`a alcun problema:
@example
@@ -6525,11 +6613,11 @@ in pratica, ma val la pena di notarlo a futura memoria.
@c This section adapted (long ago) from the regex-0.12 manual
-@cindex espressioni regolari, operatori, @command{gawk}
-@cindex @command{gawk}, espressioni regolari, operatori
-@cindex operatori, specifici per GNU
-@cindex espressioni regolari, operatori, per parole
-@cindex parola, definizione in @dfn{regexp}
+@cindex espressioni regolari @subentry operatori @subentry @command{gawk}
+@cindex @command{gawk} @subentry espressioni regolari @subentry operatori
+@cindex operatori @subentry specifici per GNU
+@cindex espressioni regolari @subentry operatori @subentry per parole
+@cindex parola @subentry definizione in @dfn{regexp}
Il software GNU che ha a che fare con espressioni regolari comprende alcuni
operatori @dfn{regexp} aggiuntivi. Questi
operatori sono descritti in
@@ -6547,67 +6635,67 @@ parole. Ai nostri fini, una @dfn{parola} @`e una
sequenza di uno o pi@`u letter
cifre, o trattini bassi (@samp{_}):
@table @code
-@c @cindex operatori, @code{\s} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\s}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\s}, operatore (@command{gawk})
+@c @cindex operators, @code{\s} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\s} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\s} (operatore @command{gawk})
@item \s
Corrisponde a ogni carattere bianco.
Lo si pu@`o pensare come un'abbreviazione di
@w{@samp{[[:space:]]}}.
-@c @cindex operatori, @code{\S} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\S}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\S}, operatore (@command{gawk})
+@c @cindex operators, @code{\S} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\S} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\S} (operatore @command{gawk})
@item \S
Corrisponde a ogni carattere che non @`e uno spazio bianco.
Lo si pu@`o pensare come un'abbreviazione di
@w{@samp{[^[:space:]]}}.
-@c @cindex operatori, @code{\w} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\w}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\w}, operatore (@command{gawk})
+@c @cindex operators, @code{\w} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\w} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\w} (operatore @command{gawk})
@item \w
Corrisponde a ogni carattere che componga una parola; ovvero, corrisponde a
ogni lettera, cifra, o trattino basso.
Lo si pu@`o pensare come un'abbreviazione di
@w{@samp{[[:alnum:]_]}}.
-@c @cindex operatori, @code{\W} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\W}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\W}, operatore (@command{gawk})
+@c @cindex operators, @code{\W} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\W} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\W} (operatore @command{gawk})
@item \W
Corrisponde a ogni carattere che non @`e parte di una parola.
Lo si pu@`o pensare come un'abbreviazione di
@w{@samp{[^[:alnum:]_]}}.
-@c @cindex operatori, @code{\<} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\<}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\<}, operatore (@command{gawk})
+@c @cindex operators, @code{\<} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\<} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\<} (operatore @command{gawk})
@item \<
Individua la stringa nulla all'inizio di una parola.
Per esempio, @code{/\<via/} individua @samp{via} ma non
@samp{funivia}.
-@c @cindex operatori, @code{\>} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\>}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\>}, operatore (@command{gawk})
+@c @cindex operators, @code{\>} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\>} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\>} (operatore @command{gawk})
@item \>
Individua la stringa nulla alla fine di una parola.
Per esempio, @code{/via\>/} individua @samp{via} ma non @samp{viadotto}.
-@c @cindex operatori, @code{\y} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\y}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\y}, operatore (@command{gawk})
-@cindex limite-di-parola, individuare il
+@c @cindex operators, @code{\y} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\y} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\y} (operatore @command{gawk})
+@cindex limite-di-parola @subentry individuare il
@item \y
Individua la stringa nulla o alla fine o all'inizio di una parola.
(cio@`e, il limite di una parola - @dfn{boundar@strong{y}} in inglese).
Per esempio, @samp{\yradar?\y}
individua sia @samp{rada} che @samp{radar}, come parole separate.
-@c @cindex operatori, @code{\B} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\B}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\B}, operatore (@command{gawk})
+@c @cindex operators, @code{\B} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\B} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\B} (operatore @command{gawk})
@item \B
Individua la stringa nulla che ricorre all'interno di una parola.
Per esempio,
@@ -6615,9 +6703,9 @@ Per esempio,
@samp{\B} @`e essenzialmente l'opposto di @samp{\y}.
@end table
-@cindex buffer, operatori per
-@cindex espressioni regolari, operatori, per buffer
-@cindex operatori, ricerca in stringhe, per buffer
+@cindex buffer @subentry operatori per
+@cindex espressioni regolari @subentry operatori @subentry per buffer
+@cindex operatori @subentry ricerca in stringhe @subentry per buffer
Ci sono due altri operatori che operano sui buffer. In Emacs un
@dfn{buffer} @`e, naturalmente, un buffer di Emacs. In altri programmi GNU,
fra cui @command{gawk}, le routine di libreria delle @dfn{regexp} considerano
@@ -6626,32 +6714,32 @@ Gli operatori sono:
@table @code
@item \`
-@c @cindex operatori, @code{\`} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\`}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\`}, operatore (@command{gawk})
+@c @cindex operators, @code{\`} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\`} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\`} (operatore @command{gawk})
Individua la stringa nulla che occorre all'inizio di un buffer
(di una stringa)
-@c @cindex operatori, @code{\'} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\'}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\'}, operatore (@command{gawk})
+@c @cindex operators, @code{\'} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\'} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\'} (operatore @command{gawk})
@item \'
Individua la stringa nulla che occorre alla fine di un buffer
(di una stringa)
@end table
-@cindex @code{^} (circonflesso), operatore @dfn{regexp}
-@cindex circonflesso (@code{^}), operatore @dfn{regexp}
-@cindex @code{?} (punto interrogativo), operatore @dfn{regexp}
-@cindex punto interrogativo (@code{?}), operatore @dfn{regexp}
+@cindex @code{^} (circonflesso) @subentry operatore @dfn{regexp}
+@cindex circonflesso (@code{^}) @subentry operatore @dfn{regexp}
+@cindex @code{?} (punto interrogativo) @subentry operatore @dfn{regexp}
+@cindex punto interrogativo (@code{?}) @subentry operatore @dfn{regexp}
Poich@'e @samp{^} e @samp{$} si riferiscono sempre all'inizio e alla
fine di stringhe, questi operatori non aggiungono nuove funzionalit@`a
ad @command{awk}. Sono inclusi per compatibilit@`a con altro
software GNU.
-@cindex @command{gawk}, operatore limite-di-parola
-@cindex limite-di-parola, operatore (@command{gawk})
-@cindex operatori, limite-di-parola (@command{gawk})
+@cindex @command{gawk} @subentry operatore limite-di-parola
+@cindex limite-di-parola @subentry operatore (@command{gawk})
+@cindex operatori @subentry limite-di-parola (@command{gawk})
In altro software GNU, l'operatore di limite-di-parola @`e @samp{\b}. Questo,
comunque, @`e in conflitto con la definizione, nel linguaggio @command{awk},
di @samp{\b} come
@@ -6661,8 +6749,8 @@ operatori GNU, ma questo @`e stato ritenuto troppo
arzigogolato. Il metodo
corrente di usare @samp{\y} al posto del @samp{\b} di GNU sembra essere
il male minore.
-@cindex espressioni regolari, @command{gawk}, opzioni sulla riga di comando
-@cindex @command{gawk}, opzioni sulla riga di comando, ed espressioni regolari
+@cindex espressioni regolari @subentry @command{gawk} @subentry opzioni sulla
riga di comando
+@cindex @command{gawk} @subentry opzioni sulla riga di comando @subentry ed
espressioni regolari
Le varie opzioni sulla riga di comando
(@pxref{Opzioni})
controllano come @command{gawk} interpreta i caratteri nelle @dfn{regexp}:
@@ -6687,7 +6775,7 @@ Sono ammesse solo le @dfn{regexp} POSIX; gli operatori
GNU non sono
speciali (p.es., @samp{\w} individua una semplice lettera @samp{w}).
Le espressioni di intervallo sono ammesse.
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
@item @code{--traditional}
Le @dfn{regexp} Unix tradizionali di @command{awk} sono ammesse. Gli
operatori GNU non sono speciali, e le espressioni
@@ -6706,9 +6794,9 @@ Altrimenti, le espressioni di intervallo sono disponibili
per default.
@node Maiuscolo-Minuscolo
@section Fare confronti ignorando maiuscolo/minuscolo
-@cindex espressioni regolari, maiuscolo/minuscolo
-@cindex @dfn{regexp}, maiuscolo/minuscolo
-@cindex maiuscolo/minuscolo e @dfn{regexp}
+@cindex espressioni regolari @subentry maiuscolo/minuscolo
+@cindex @dfn{regexp} @subentry maiuscolo/minuscolo
+@cindex maiuscolo/minuscolo @subentry @dfn{regexp} e
Il tipo di carattere (maiuscolo/minuscolo) @`e normalmente rilevante nelle
espressioni regolari, sia nella ricerca di
caratteri normali (cio@`e, non metacaratteri), sia all'interno di espressioni
@@ -6738,15 +6826,15 @@ tolower($1) ~ /foo/ @{ @dots{} @}
converte il primo campo in minuscole, prima di fare un confronto.
Questo funziona in ogni @command{awk} conforme allo standard POSIX.
-@cindex @command{gawk}, espressioni regolari, differenza maiuscolo/minuscolo
-@cindex distinzione maiuscolo/minuscolo, @command{gawk}
-@cindex differenze tra @command{awk} e @command{gawk}, espressioni regolari
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
-@cindex @code{IGNORECASE}, variabile, con operatori @code{~} e @code{!~}
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
+@cindex @command{gawk} @subentry espressioni regolari @subentry distinzione
maiuscolo/minuscolo
+@cindex distinzione maiuscolo/minuscolo @subentry @command{gawk}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry espressioni
regolari
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
+@cindex @code{IGNORECASE} (variabile) @subentry con operatori @code{~} e
@code{!~}
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
@c @cindex variables, @code{IGNORECASE}
Un altro metodo, proprio di @command{gawk}, @`e di impostare la variabile
@code{IGNORECASE} a un valore diverso da zero (@pxref{Variabili predefinite}).
@@ -6858,11 +6946,11 @@ versioni di @command{awk}, vanno usate invece le
funzioni @code{tolower()} o
@node Leggere file
@chapter Leggere file in input
-@cindex leggere file in input
-@cindex file in input, leggere
-@cindex file in input
-@cindex @code{FILENAME}, variabile
-@cindex variabile @code{FILENAME}
+@cindex leggere @subentry file in input
+@cindex input @subentry leggere
+@cindex input
+@cindex @code{FILENAME} (variabile)
+@cindex variabile @subentry @code{FILENAME}
Nel tipico programma @command{awk},
@command{awk} legge tutto l'input sia dallo standard input
(per default @`e la tastiera, ma spesso @`e una @dfn{pipe} da un altro comando)
@@ -6881,7 +6969,7 @@ Per default, ogni record @`e una riga. Ogni
record @`e suddiviso automaticamente in "pezzi" chiamati @dfn{campi}.
Questo rende pi@`u pratico far lavorare i programmi sulle parti di un record.
-@cindex @code{getline}, comando
+@cindex @code{getline} (comando)
In rare occasioni, si potrebbe aver bisogno di usare il comando
@code{getline}. Il comando @code{getline} @`e utile sia perch@'e pu@`o
procurare
un input esplicito da un numero indeterminato di file, sia perch@'e non vanno
@@ -6916,10 +7004,10 @@ getline (@pxref{Getline}).
@node Record
@section Controllare come i dati sono suddivisi in record
-@cindex input, suddividere in record
-@cindex record, suddividere l'input in
-@cindex @code{NR}, variabile
-@cindex @code{FNR}, variabile
+@cindex input @subentry suddividere in record
+@cindex record @subentry suddividere l'input in
+@cindex @code{NR} (variabile)
+@cindex @code{FNR} (variabile)
@command{awk} suddivide l'input per il programma in record e campi.
Tiene traccia del numero di record gi@`a letti dal
file in input corrente. Questo valore @`e memorizzato in una variabile
@@ -6945,18 +7033,18 @@ regolare. Questo meccanismo @`e spiegato pi@`u in
dettaglio qui sotto.
@node awk divisione record
@subsection Come @command{awk} standard divide i record.
-@cindex separatori di record
-@cindex record, separatori di
+@cindex separatore di record
+@cindex record @subentry separatore di
I record sono separati da un carattere chiamato @dfn{separatore di record}.
Per default, il separatore di record @`e il carattere di ritorno a capo.
Questo @`e il motivo per cui i record sono, per default, righe singole.
Per usare un diverso carattere come separatore di record
basta assegnare quel carattere alla variabile predefinita @code{RS}.
-@cindex separatore di record, ritorno a capo come
-@cindex ritorno a capo, come separatore di record
-@cindex a capo, come separatore di record
-@cindex @code{RS}, variabile
+@cindex separatore di record @subentry ritorno a capo come
+@cindex ritorno a capo @subentry come separatore di record
+@cindex ritorno a capo @subentry come separatore di record
+@cindex @code{RS} (variabile)
Come per ogni altra variabile,
il valore di @code{RS} pu@`o essere cambiato nel programma @command{awk}
con l'operatore di assegnamento, @samp{=}
@@ -6971,7 +7059,7 @@ Per esempio:
@example
awk 'BEGIN @{ RS = "u" @}
- @{ print $0 @}' mail-list
+@{ print $0 @}' mail-list
@end example
@noindent
@@ -7049,8 +7137,9 @@ il record, diversamente dalle altre, che hanno una o
pi@`u ricorrenze della
il ritorno a capo che li separa nell'output @`e l'originale ritorno a capo nel
@value{DF}, non quella aggiunta da @command{awk} quando ha stampato il record!
-@cindex separatori di record, cambiare i
-@cindex record, separatori di
+@cindex separatore di record @subentry cambiare il
+@cindex cambiare @subentry il separatore di record
+@cindex record @subentry separatore di
Un altro modo per cambiare il separatore di record @`e sulla riga di comando,
usando la funzionalit@`a dell'assegnamento di variabile
(@pxref{Altri argomenti}):
@@ -7093,14 +7182,14 @@ variabile predefinita @code{NF} @`e il numero di campi
nel record corrente.
vuoto, stampando @samp{0} come risultato. Anche molte altre versioni di
@command{awk} agiscono in questo modo.)
-@cindex angolo buio, file in input
+@cindex angolo buio @subentry file in input
Il raggiungimento della fine di un file in input fa terminare il record di
input corrente, anche se l'ultimo carattere nel file non @`e il carattere in
@code{RS}. @value{DARKCORNER}
-@cindex stringa vuota
+@cindex stringa @subentry vuota @seeentry{stringa nulla}
@cindex stringa nulla
-@c @cindex strings, empty, see null strings
+@cindex stringa @subentry vuota @seeentry{stringa nulla}
La stringa nulla @code{""} (una stringa che non contiene alcun carattere)
ha un significato particolare come
valore di @code{RS}. Significa che i record sono separati
@@ -7112,14 +7201,14 @@ Se si cambia il valore di @code{RS} nel mezzo di
un'esecuzione di
non riguarda il record in corso di elaborazione e neppure quelli gi@`a
elaborati.
-@cindex @command{gawk}, variabile @code{RT} in
-@cindex @code{RT}, variabile
-@cindex record, fine dei
-@cindex differenze tra @command{awk} e @command{gawk}, separatori di record
-@cindex differenze tra @command{awk} e @command{gawk}, variabili
@code{RS}/@code{RT}
-@cindex espressioni regolari, come separatori di record
-@cindex record, separatori di, espressioni regolari come
-@cindex separatori di record, espressioni regolari come
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex record @subentry fine dei
+@cindex differenze tra @command{awk} e @command{gawk} @subentry separatore di
record
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili
@code{RS}/@code{RT}
+@cindex espressioni regolari @subentry come separatore di record
+@cindex record @subentry separatore di @subentry espressioni regolari come
+@cindex separatore di record @subentry espressioni regolari come
Dopo che @`e stata determinata la fine di un record, @command{gawk}
imposta la variabile @code{RT} al testo nell'input che corrisponde a
@code{RS}.
@@ -7127,8 +7216,8 @@ imposta la variabile @code{RT} al testo nell'input che
corrisponde a
@node gawk divisione record
@subsection Divisione dei record con @command{gawk}
-@cindex estensioni comuni, @code{RS} come espressione regolare
-@cindex comuni, estensioni@comma{} @code{RS} come espressione regolare
+@cindex estensioni comuni @subentry @code{RS} come espressione regolare
+@cindex comuni @subentry estensioni @subentry @code{RS} come espressione
regolare
Quando si usa @command{gawk},
il valore di @code{RS} non @`e limitato a una stringa costituita da un solo
carattere. Se contiene pi@`u di un carattere, @`e considerato essere
@@ -7199,10 +7288,10 @@ in cui possono essere presenti dei caratteri di ritorno
a capo.
@`E meglio perci@`o evitare metacaratteri di ancoraggio nel valore di
@code{RS}.
@end quotation
-@cindex @command{gawk}, variabile @code{RT} in
-@cindex @code{RT}, variabile
-@cindex variabile @code{RT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabili
@code{RS}/@code{RT}
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex variabile @subentry @code{RT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili
@code{RS}/@code{RT}
L'uso di @code{RS} come espressione regolare e la variabile @code{RT} sono
estensioni @command{gawk}; non sono disponibili in
modalit@`a compatibile
@@ -7211,7 +7300,7 @@ In modalit@`a compatibile, solo il primo carattere del
valore di
@code{RS} determina la fine del record.
@sidebar @code{RS = "\0"} non @`e portabile
-@cindex portabilit@`a, file di dati come un unico record
+@cindex portabilit@`a @subentry file di dati come un unico record
Ci sono casi in cui capita di dover trattare un intero @value{DF} come
un record unico. L'unico modo di far questo @`e quello di dare a @code{RS}
un valore che non ricorre nel file in input. Ci@`o @`e difficile da fare in
modo
@@ -7226,7 +7315,7 @@ usare per @code{RS} in questo caso:
BEGIN @{ RS = "\0" @} # l'intero file diventa un record?
@end example
-@cindex differenze tra @command{awk} e @command{gawk}, stringhe, memorizzazione
+@cindex differenze tra @command{awk} e @command{gawk} @subentry memorizzazione
di stringhe
@command{gawk} di fatto lo accetta, e usa il carattere @sc{NUL}
come separatore di record.
Questo funziona per certi file speciali, come @file{/proc/environ} su sistemi
@@ -7234,7 +7323,7 @@ GNU/Linux, dove il carattere @sc{NUL} @`e di fatto un
separatore di record..
Comunque, quest'uso @emph{non} @`e portabile sulla maggior parte delle
implementazioni di @command{awk}.
-@cindex angolo buio, stringhe, memorizzazione
+@cindex angolo buio @subentry stringhe, memorizzazine di
Quasi tutte le altre implementazioni di @command{awk} @footnote{Almeno quelle
che ci sono note.} memorizzano internamente le stringhe come stringhe
in stile C. Le stringhe in stile C usano il carattere @sc{NUL} come
@@ -7247,10 +7336,11 @@ Capita che recenti versioni di @command{mawk} possano
usare i carattere
@command{mawk} non consente di includere caratteri @sc{NUL} nelle stringhe.
(Ci@`o potrebbe cambiare in una versione futura di @command{mawk}.)
-@cindex record, trattare file come un solo
+@cindex record @subentry trattare file come un solo
@cindex trattare un file come un solo record
-@cindex record unico, trattare un file come un
-@cindex unico record, trattare un file come un
+@cindex file @subentry trattato come un solo record
+@cindex record unico @subentry trattare file come un solo
+@cindex unico record @subentry trattare un file come un
@xref{Funzione readfile} per un modo interessante di leggere
file interi. Se si usa @command{gawk}, si veda
@ref{Esempio di estensione Readfile} per un'altra opzione.
@@ -7262,7 +7352,7 @@ file interi. Se si usa @command{gawk}, si veda
@cindex esaminare i campi
@cindex campi
@cindex accesso ai campi
-@cindex campi, esame dei
+@cindex campi @subentry esame dei
Quando @command{awk} legge un record in input, il record @`e
automaticamente @dfn{analizzato} o separato da @command{awk} in "pezzi"
chiamati @dfn{campi}. Per default, i campi sono separati da
@@ -7274,14 +7364,14 @@ sono considerati spazi vuoti in altri linguaggi,
@emph{non} sono considerati
tali da @command{awk}.
Lo scopo dei campi @`e quello di rendere pi@`u conveniente per l'utente far
-riferimento a questi frammenti dei record. Non @`e necessario usarli---si
pu@`o
-operare sull'intero record, se si vuole---ma i campi sono ci@`o che rende
+riferimento a questi frammenti dei record. Non @`e necessario usarli --- si
pu@`o
+operare sull'intero record, se si vuole --- ma i campi sono ci@`o che rende
cos@`{@dotless{i}} potenti dei semplici programmi @command{awk}.
-@cindex operatore di campo @code{$}
-@cindex @code{$} (dollaro), operatore di campo @code{$}
-@cindex dollaro (@code{$}), operatore di campo @code{$}
-@cindex operatore di campo, dollaro come
+@cindex operatore @subentry di campo @subentry @code{$}
+@cindex @code{$} (dollaro) @subentry operatore di campo @code{$}
+@cindex dollaro (@code{$}) @subentry operatore di campo @code{$}
+@cindex operatore @subentry di campo @subentry dollaro come
Si usa il simbolo del dollaro (@samp{$})
per far riferimento a un campo in un programma @command{awk},
seguito dal numero del campo desiderato. Quindi, @code{$1}
@@ -7301,8 +7391,8 @@ Qui il primo campo, o @code{$1}, @`e @samp{Questo}, il
secondo campo, o
@samp{o} e il @samp{.}, il punto @`e considerato parte del settimo
campo.
-@cindex @code{NF}, variabile
-@cindex campi, numero dei
+@cindex @code{NF} (variabile)
+@cindex campi @subentry numero dei
@code{NF} @`e una variabile predefinita il cui valore @`e il numero di campi
nel
record corrente. @command{awk} aggiorna automaticamente il valore di
@code{NF} ogni volta che legge un record. Indipendentemente da quanti campi
@@ -7340,8 +7430,8 @@ $ @kbd{awk '/li/ @{ print $1, $NF @}' mail-list}
@node Campi non costanti
@section Numeri di campo variabili
-@cindex campi, numero dei
-@cindex numeri di campo
+@cindex campi @subentry numero dei
+@cindex numero @subentry di campi in un record
Un numero di campo non @`e necessario che sia una costante. Nel linguaggio
@command{awk} si pu@`o usare qualsiasi espressione dopo @samp{$} per far
@@ -7391,14 +7481,15 @@ implementazioni di @command{awk} possono comportarsi in
modo diverso.)
Come accennato in @ref{Campi},
@command{awk} memorizza il numero di campi del record corrente nella variabile
predefinita @code{NF} (@pxref{Variabili predefinite}). Quindi,
-l'espressione @code{$NF} non @`e una funzionalit@`a speciale---@`e la diretta
+l'espressione @code{$NF} non @`e una funzionalit@`a speciale --- @`e la diretta
conseguenza della valutazione di @code{NF} e dell'uso di questo valore come
numero di campo.
@node Cambiare i campi
@section Cambiare il contenuto di un campo
-@cindex campi, cambiare il contenuto dei
+@cindex campi @subentry cambiare il contenuto dei
+@cindex cambiare @subentry il contenuto dei campi
Il contenuto di un campo, cos@`{@dotless{i}} come @`e visto da @command{awk},
pu@`o essere
cambiato all'interno di un programma @command{awk}; questo cambia quello che
@command{awk} percepisce come record in input corrente. (Il reale file in
@@ -7459,8 +7550,8 @@ $ @kbd{awk '@{ $6 = ($5 + $4 + $3 + $2)}
@dots{}
@end example
-@cindex aggiungere, campi
-@cindex campi, aggiungere
+@cindex aggiungere @subentry campi
+@cindex campi @subentry aggiungere
@noindent
Abbiamo appena creato @code{$6}, il cui valore @`e la somma dei campi
@code{$2}, @code{$3}, @code{$4} e @code{$5}. Il segno @samp{+}
@@ -7473,10 +7564,10 @@ record in input corrente, che @`e il valore di
@code{$0}. Cos@`{@dotless{i}}, s
nuovo campo, col numero di separatori di campo appropriati tra esso e i
campi originariamente presenti.
-@cindex @code{OFS}, variabile
-@cindex output, separatore di campo, si veda @code{OFS}, variabile
-@cindex campo, separatori di, si veda anche @code{OFS}
-@cindex separatori di campo, si veda anche @code{OFS}
+@cindex @code{OFS} (variabile)
+@cindex output @subentry separatore di campo @seeentry{@code{OFS} (variabile)}
+@cindex campi @subentry separatore di @seealso{@code{OFS}}
+@cindex separatore di campo @seealso{@code{OFS} (variabile)}
Questa ridefinizione influenza ed @`e influenzata da
@code{NF} (il numero dei campi; @pxref{Campi}).
Per esempio, il valore di @code{NF} @`e impostato al numero del campo pi@`u
@@ -7492,9 +7583,9 @@ Per esempio:
@example
if ($(NF+1) != "")
- print "non @`e possibile"
+print "non @`e possibile"
else
- print "@`e tutto normale"
+print "@`e tutto normale"
@end example
@noindent
@@ -7532,8 +7623,8 @@ Il campo intermedio, @code{$5}, @`e creato con un valore
vuoto
(indicato dalla seconda coppia di due punti (@code{:}) adiacenti),
e @code{NF} @`e aggiornato col valore sei.
-@cindex angolo buio, variabile @code{NF}, decremento
-@cindex @code{NF}, variable, decremento
+@cindex angolo buio @subentry variabile @subentry @code{NF}, decremento
+@cindex @code{NF} (variabile) @subentry decremento
Decrementando @code{NF} si eliminano i campi
dopo il nuovo valore di @code{NF} e si ricalcola @code{$0}.
@value{DARKCORNER}
@@ -7546,7 +7637,7 @@ $ @kbd{echo a b c d e f | awk '@{ print "NF =", NF;}
@print{} a b c
@end example
-@cindex portabilit@`a, variabile @code{NF}@comma{} decremento
+@cindex portabilit@`a @subentry variabile @code{NF}, decrementare
@quotation ATTENZIONE
Alcune versioni di @command{awk} non
ricostruiscono @code{$0} quando @code{NF} viene diminuito.
@@ -7612,9 +7703,9 @@ in precedenza.
sommario.
@end menu
-@cindex @code{FS}, variabile
-@cindex campi, separare
-@cindex campo, separatori di
+@cindex @code{FS} (variabile)
+@cindex campi @subentry separare
+@cindex campi @subentry separatore di
Il @dfn{separatore di campo}, che @`e un carattere singolo o un'espressione
regolare, controlla il modo in cui @command{awk} suddivide un record in input
in campi. @command{awk} fa una scansione del record in input per trovare i
@@ -7634,14 +7725,15 @@ moo goo gai pan
@samp{@bullet{}gai@bullet{}pan}.
Notare gli spazi iniziali nei valori del secondo e del terzo campo.
-@cindex risoluzione di problemi, @command{awk} usa @code{FS} anzich@'e
@code{IFS}
-@cindex problemi, risoluzione di, @command{awk} usa @code{FS} anzich@'e
@code{IFS}
+@cindex risoluzione di problemi @subentry @command{awk} usa @code{FS}
anzich@'e @code{IFS}
+@cindex problemi @subentry risoluzione di @subentry @command{awk} usa
@code{FS} anzich@'e @code{IFS}
Il separatore di campo @`e rappresentato dalla variable predefinita @code{FS}.
I programmatori di shell notino: @command{awk} @emph{non} usa il
nome @code{IFS} che @`e usato dalle shell conformi a POSIX (come
la Unix Bourne shell, @command{sh}, o Bash).
-@cindex @code{FS}, variabile, cambiare il valore di una
+@cindex @code{FS} (variabile) @subentry cambiare il valore della
+@cindex cambiare @subentry il valore di @code{FS} (variabile)
Il valore di @code{FS} si pu@`o cambiare nel programma @command{awk} con
l'operatore di assegnamento, @samp{=} (@pxref{Operatori di assegnamento}).
Spesso il momento giusto per far ci@`o @`e all'inizio dell'esecuzione
@@ -7657,7 +7749,7 @@ Per esempio, qui impostiamo il valore di @code{FS} alla
stringa
awk 'BEGIN @{ FS = "," @} ; @{ print $2 @}'
@end example
-@cindex @code{BEGIN}, criterio di ricerca
+@cindex @code{BEGIN} (regola)
@noindent
Data la riga in input:
@@ -7669,9 +7761,9 @@ John Q. Smith, 29 Oak St., Walamazoo, MI 42139
questo programma @command{awk} estrae e stampa la stringa
@samp{@bullet{}29@bullet{}Oak@bullet{}St.}.
-@cindex separatori di campo, scelta dei
-@cindex espressioni regolari, come separatori di campo
-@cindex separatori di campo, espressioni regolari come
+@cindex separatore di campo @subentry scelta del
+@cindex espressioni regolari @subentry come separatore di campo
+@cindex separatore di campo @subentry espressioni regolari come
A volte i dati in input contengono caratteri separatori che non
separano i campi nel modo in cui ci si sarebbe atteso. Per esempio, il
nome della persona dell'esempio che abbiamo appena usato potrebbe avere un
@@ -7694,8 +7786,10 @@ si possano manipolare con un programma @command{awk}
separato.)
@node Separatori di campo di default
@subsection Lo spazio vuoto normalmente separa i campi
-@cindex separatori di campo, spazi vuoti come
-@cindex spazi vuoti, come separatori di campo
+@cindex separatore di campo @subentry spazi vuoti come
+@cindex spazi vuoti @subentry come separatore di campo
+@cindex separatore di campo @subentry @code{FS} (variabile) come
+@cindex @code{FS} (variabile) @subentry come separatore di campo
I campi sono separati normalmente da spazi vuoti
(spazi, tabulazioni e ritorni a capo), non solo da spazi singoli. Due spazi
in una riga non delimitano un campo vuoto. Il valore di default del separatore
@@ -7716,8 +7810,8 @@ regole.
@node Separare campi con @dfn{regexp}
@subsection Usare @dfn{regexp} come separatori di campo
-@cindex espressioni regolari, come separatori di campo
-@cindex separatori di campo, espressioni regolari come
+@cindex espressioni regolari @subentry come separatore di campo
+@cindex separatore di campo @subentry espressioni regolari come
La precedente @value{SUBSECTION}
ha illustrato l'uso di caratteri singoli o di stringhe semplici come
valore di @code{FS}.
@@ -7775,9 +7869,8 @@ $ @kbd{echo ' a b c d ' | awk 'BEGIN @{ FS = "[
\t\n]+" @}}
@end example
@noindent
-@c @cindex null strings
@cindex stringa nulla
-@cindex stringa vuota, si veda stringa nulla
+@cindex stringa @subentry vuota @seeentry{stringa nulla}
In questo caso, il primo campo @`e nullo, o vuoto.
Il taglio degli spazi vuoti iniziale e finale ha luogo anche
ogniqualvolta @code{$0} @`e ricalcolato.
@@ -7798,9 +7891,9 @@ Poich@'e lo spazio vuoto iniziale @`e stato ignorato
quando si @`e trovato
@code{$1}, esso non fa parte del nuovo @code{$0}. Alla fine, l'ultima
istruzione @code{print} stampa il nuovo @code{$0}.
-@cindex @code{FS}, contenente @code{^}
-@cindex @code{^} (circonflesso), in @code{FS}
-@cindex angolo buio, @code{^}, in @code{FS}
+@cindex @code{FS} (variabile) @subentry contenente @code{^}
+@cindex @code{^} (circonflesso) @subentry in @code{FS}
+@cindex angolo buio @subentry @code{^}, in @code{FS}
C'@`e un'ulteriore sottigliezza da considerare quando si usano le espressioni
regolari per separare i campi.
Non @`e ben specificato nello standard POSIX, n@'e altrove, cosa
@@ -7811,7 +7904,7 @@ rispondono a questo quesito in modo diverso, e non si
dovrebbe far affidamento
su alcun comportamento specifico nei propri programmi.
@value{DARKCORNER}
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
Di sicuro, BWK @command{awk} individua con @samp{^}
solo l'inizio del record. Anche @command{gawk}
funziona in questo modo. Per esempio:
@@ -7829,11 +7922,11 @@ $ @kbd{echo 'xxAA xxBxx C' |}
@node Campi di un solo carattere
@subsection Fare di ogni carattere un campo separato
-@cindex estensioni comuni, campi di un solo carattere
-@cindex comuni, estensioni, campi di un solo carattere
-@cindex differenze tra @command{awk} e @command{gawk}, campi di un solo
carattere
-@cindex singolo carattere, campi
-@cindex campi di un solo carattere
+@cindex estensioni comuni @subentry campi di un solo carattere
+@cindex comuni @subentry estensioni @subentry campi di un solo carattere
+@cindex differenze tra @command{awk} e @command{gawk} @subentry campi di un
solo carattere
+@cindex singolo carattere @subentry campi di un
+@cindex campi @subentry di un solo carattere
Ci sono casi in cui si abbia la necessit@`a di analizzare ciascun carattere di
un
record separatamente. Questo si pu@`o fare in @command{gawk} semplicemente
assegnando la stringa nulla (@code{""}) a @code{FS}. @value{COMMONEXT}
@@ -7852,8 +7945,8 @@ $ @kbd{echo a b | gawk 'BEGIN @{ FS = "" @}}
@print{} Il campo 3 @`e b
@end example
-@cindex angolo buio, @code{FS} come stringa nulla
-@cindex @code{FS}, variabile, come stringa nulla
+@cindex angolo buio @subentry @code{FS} come stringa nulla
+@cindex @code{FS} (variabile) @subentry come stringa nulla
Tradizionalmente, il comportamento di @code{FS} quando @`e impostato a
@code{""} non @`e stato definito. In questo caso, la maggior parte delle
versioni UNIX di @command{awk} trattano l'intero record come se avesse un
@@ -7866,10 +7959,11 @@ si comporta in questo modo.
@node Separatori campo da riga di comando
@subsection Impostare @code{FS} dalla riga di comando
-@cindex @option{-F}, opzione sulla riga di comando
-@cindex separatore di campo, specificare sulla riga di comando
-@cindex riga di comando, impostare @code{FS} sulla
-@cindex @code{FS}, variabile, impostare da riga di comando
+@cindex @option{-F} (opzione) sulla riga di comando
+@cindex opzione @subentry @option{-F} @subentry sulla riga di comando
+@cindex separatore di campo @subentry specificare sulla riga di comando
+@cindex riga di comando @subentry impostare @code{FS} sulla
+@cindex @code{FS} (variabile) @subentry impostare da riga di comando
@code{FS} pu@`o essere impostata sulla riga di comando. Per far questo si usa
l'opzione @option{-F}. Per esempio:
@@ -7896,9 +7990,9 @@ awk -F\\\\ '@dots{}' file @dots{}
@end example
@noindent
-@cindex separatore di campo, @code{\} (barra inversa) come
-@cindex @code{\} (barra inversa), come separatore di campo
-@cindex barra inversa (@code{\}), come separatore di campo
+@cindex separatore di campo @subentry @code{\} (barra inversa) come
+@cindex @code{\} (barra inversa) @subentry come separatore di campo
+@cindex barra inversa (@code{\}) @subentry come separatore di campo
Poich@'e @samp{\} @`e usato nella shell per proteggere caratteri, a
@command{awk}
arriva @samp{-F\\}. Quindi @command{awk} elabora @samp{\\} per caratteri di
protezione (@pxref{Sequenze di protezione}), producendo alla fine
@@ -7951,7 +8045,7 @@ che ci si aspettava venisse usato.
Questo lascia intuire il motivo per cui si deve stare attenti nella scelta
dei separatori di campo e di record.
-@cindex Unix @command{awk}, file di password, separatori di campo e
+@cindex Unix @command{awk} @subentry file di password @subentry separatore di
campo e
Forse l'uso pi@`u comune di un solo carattere come separatore di campo avviene
quando si elabora il file delle password di un sistema Unix. Su molti sistemi
Unix, ogni utente @`e descritto da un elemento nel file delle password del
@@ -7962,7 +8056,7 @@ dell'utente criptata o oscurata (una password oscurata
@`e indicata dalla
presenza di una sola @samp{x} nel secondo campo). Una riga nel file delle
password potrebbe essere simile a questa:
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
@example
arnold:x:2076:10:Arnold Robbins:/home/arnold:/bin/bash
@end example
@@ -7989,11 +8083,10 @@ awk -F'\n' '@var{programma}' @var{file @dots{}}
@noindent
In questo caso, @code{$1} coincide con @code{$0}.
-
@sidebar Cambiare @code{FS} non incide sui campi
-@cindex POSIX @command{awk}, separatori di campo e
-@cindex separatore di campo, POSIX e il
+@cindex POSIX @command{awk} @subentry separatore di campo
+@cindex separatore di campo @subentry POSIX e il
Secondo lo standard POSIX, si suppone che @command{awk} si comporti
come se ogni record sia stato diviso in campi nel momento in cui @`e stato
letto. In particolare, ci@`o vuol dire che se si cambia il valore di
@@ -8001,9 +8094,9 @@ letto. In particolare, ci@`o vuol dire che se si cambia
il valore di
la loro suddivisione) sar@`a ancora quello ottenuto usando il precedente
valore di @code{FS}, non quello nuovo.
-@cindex angolo buio, separatori di campo
-@cindex @command{sed}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sed}
+@cindex angolo buio @subentry separatore di campo
+@cindex @command{sed} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sed}
@cindex editori di flusso
Comunque, molte delle pi@`u vecchie implementazioni di @command{awk} non
funzionano in questo modo. Invece, rimandano la divisione dei campi
@@ -8102,9 +8195,9 @@ caso, @code{IGNORECASE} avr@`a effetto.
@section Leggere campi di larghezza costante
-@cindex campi di larghezza costante
-@cindex larghezza costante, campi di
-@cindex funzionalit@`a avanzate, campi di larghezza costante
+@cindex campi @subentry di larghezza costante
+@cindex larghezza costante @subentry campi di
+@cindex funzionalit@`a @subentry avanzate @subentry campi di larghezza costante
@c O'Reilly doesn't like it as a note the first thing in the section.
@ifnotinfo
Questa
@@ -8151,12 +8244,12 @@ Sebbene un programma @command{awk} portabile possa
usare una serie di
chiamate @code{substr()} su @code{$0} (@pxref{Funzioni per stringhe}),
questo @`e scomodo e inefficiente se il numero dei campi @`e elevato.
-@cindex risoluzione di problemi, errori fatali, specificare larghezza dei campi
-@cindex problemi, risoluzione di, errori fatali, specificare larghezza dei
campi
-@cindex @command{w}, programma di utilit@`a
-@cindex programma di utilit@`a @command{w}
-@cindex @code{FIELDWIDTHS}, variabile
-@cindex @command{gawk}, variabile @code{FIELDWIDTHS} in
+@cindex risoluzione di problemi @subentry errori fatali @subentry specificare
larghezza dei campi
+@cindex problemi @subentry risoluzione di @subentry errori fatali, specificare
larghezza dei campi
+@cindex @command{w} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{w}
+@cindex @code{FIELDWIDTHS} (variabile)
+@cindex @command{gawk} @subentry variabile @subentry @code{FIELDWIDTHS} in
La suddivisione di un record in input in campi a larghezza fissa viene
specificata assegnando una stringa contenente numeri separati da spazi alla
variabile predefinita @code{FIELDWIDTHS}. Ogni numero specifica la larghezza
@@ -8171,7 +8264,7 @@ Unix @command{w}. @`E utile per spiegare l'uso di
@code{FIELDWIDTHS}:
@example
@group
- 10:06pm up 21 days, 14:04, 23 users
+10:06pm up 21 days, 14:04, 23 users
User tty login@ idle JCPU PCPU what
hzuo ttyV0 8:58pm 9 5 vi p24.tex
hzang ttyV3 6:37pm 50 -csh
@@ -8192,18 +8285,18 @@ calcolato:
@example
BEGIN @{ FIELDWIDTHS = "9 6 10 6 7 7 35" @}
NR > 2 @{
- inat = $4
- sub(/^ +/, "", inat) # togli spazi prima del valore
- if (inat == "")
- inat = 0
- if (inat ~ /:/) @{ # hh:mm
- split(inat, t, ":")
- inat = t[1] * 60 + t[2]
- @}
- if (inat ~ /days/)
- inat *= 24 * 60 * 60
+inat = $4
+sub(/^ +/, "", inat) # togli spazi prima del valore
+if (inat == "")
+inat = 0
+if (inat ~ /:/) @{ # hh:mm
+split(inat, t, ":")
+inat = t[1] * 60 + t[2]
+@}
+if (inat ~ /days/)
+inat *= 24 * 60 * 60
- print $1, $2, inat
+print $1, $2, inat
@}
@end example
@@ -8338,11 +8431,11 @@ o @code{"FIELDWIDTHS"} se si usa la separazione in
campi a larghezza fissa:
@example
if (PROCINFO["FS"] == "FS")
- @var{separazione in campi normale}@dots{}
+@var{separazione in campi normale}@dots{}
else if (PROCINFO["FS"] == "FIELDWIDTHS")
- @var{separazione in campi a larghezza fissa}@dots{}
+@var{separazione in campi a larghezza fissa}@dots{}
else
- @var{separazione dei campi in base al contenuto}@dots{} @ii{(si veda
+@var{separazione dei campi in base al contenuto}@dots{} @ii{(si veda
@ifnotinfo
la @value{SECTION} successiva)}
@end ifnotinfo
@@ -8371,7 +8464,7 @@ Questo
di @command{gawk}. Se si @`e un utente alle prime armi di @command{awk},
la si pu@`o saltare in prima lettura.
-@cindex funzionalit@`a avanzate, specificare il contenuto dei campi
+@cindex funzionalit@`a @subentry avanzate @subentry specificare il contenuto
dei campi
Normalmente, quando si usa @code{FS}, @command{gawk} definisce i campi come
le parti del record che si trovano tra due separatori di campo. In altre
@@ -8399,8 +8492,8 @@ Robbins,Arnold,"1234 A Pretty Street,
NE",MyTown,MyState,12345-6789,USA
@c endfile
@end example
-@cindex @command{gawk}, variabile @code{FPAT} in
-@cindex @code{FPAT}, variabile
+@cindex @command{gawk} @subentry variabile @subentry @code{FPAT} in
+@cindex @code{FPAT} (variabile)
La variabile @code{FPAT} offre una soluzione per casi come questo.
Il valore di @code{FPAT} dovrebbe essere una stringa formata da un'espressione
regolare. L'espressione regolare descrive il contenuto di ciascun campo.
@@ -8430,16 +8523,16 @@ e divide i dati:
@c file eg/misc/simple-csv.awk
@group
BEGIN @{
- FPAT = "([^,]+)|(\"[^\"]+\")"
+FPAT = "([^,]+)|(\"[^\"]+\")"
@}
@end group
@group
@{
- print "NF = ", NF
- for (i = 1; i <= NF; i++) @{
- printf("$%d = <%s>\n", i, $i)
- @}
+print "NF = ", NF
+for (i = 1; i <= NF; i++) @{
+printf("$%d = <%s>\n", i, $i)
+@}
@}
@end group
@c endfile
@@ -8467,8 +8560,8 @@ questo tipo:
@example
if (substr($i, 1, 1) == "\"") @{
- len = length($i)
- $i = substr($i, 2, len - 2) # Ottiene il testo tra doppi apici
+len = length($i)
+$i = substr($i, 2, len - 2) # Ottiene il testo tra doppi apici
@}
@end example
@@ -8508,11 +8601,11 @@ per suddividere normali stringhe (@pxref{Funzioni per
stringhe}).
@node Controllare la creazione di campi
@section Controllare come @command{gawk} sta dividendo i record
-@cindex @command{gawk}, separazione in campi e
+@cindex @command{gawk} @subentry separazione in campi e
Come visto sopra, @command{gawk} fornisce tre metodi indipendenti per
dividere i record in input in campi. Il meccanismo utilizzato dipende da
-quale delle tre variabili---@code{FS}, @code{FIELDWIDTHS} o
-@code{FPAT}---@`e stato definito per ultimo.
+quale delle tre variabili --- @code{FS}, @code{FIELDWIDTHS} o
+@code{FPAT} --- @`e stato definito per ultimo.
Inoltre, un analizzatore di input che utilizzi l'API (Application
Programming Interface) pu@`o scegliere di modificare il meccanismo di
analisi dei record; si veda @ref{Analizzatori di input} per ulteriori
informazioni
@@ -8550,17 +8643,17 @@ record e poi ripristinare le inpostazioni originali.
Si veda
@node Righe multiple
@section Record su righe multiple
-@cindex righe multiple, record su
-@cindex record multiriga
-@cindex input, record multiriga
-@cindex file, lettura dei record multiriga
-@cindex input, file in, si veda file in input
+@cindex righe multiple @subentry record su
+@cindex record @subentry multiriga
+@cindex input @subentry record multiriga
+@cindex file @subentry lettura dei record multiriga
+@cindex input
In alcune banche-dati, una sola riga non pu@`o contenere in modo adeguato
tutte le informazioni di una voce. In questi casi si possono usare record
multiriga.
Il primo passo @`e quello di scegliere il formato dei dati.
-@cindex separatori di record, per record multiriga
+@cindex separatore di record @subentry per record multiriga
Una tecnica @`e quella di usare un carattere o una stringa non usuali per
separare i record. Per esempio, si pu@`o usare il carattere di interruzione di
pagina (scritto @samp{\f} sia in @command{awk} che in C) per separarli,
@@ -8569,7 +8662,7 @@ variabile @code{RS} a @code{"\f"} (una stringa contenente
il carattere di
interruzione di pagina). Si potrebbe ugualmente usare qualsiasi altro
carattere, sempre che non faccia parte dei dati di un record.
-@cindex @code{RS}, variabile, record multiriga e
+@cindex @code{RS} (variabile) @subentry record multiriga e
Un'altra tecnica @`e quella di usare righe vuote per separare i record.
Per una particolare
convenzione, una stringa nulla come valore di @code{RS} indica che i record
@@ -8581,8 +8674,8 @@ esse costituiscono sempre un unico separatore di record.
(Le righe vuote devono essere completamente vuote; righe che contengono
spazi bianchi @emph{non} sono righe vuote.)
-@cindex stringa pi@`u lunga da sinistra, individuare la
-@cindex individuare la stringa pi@`u lunga da sinistra
+@cindex stringa @subentry pi@`u lunga da sinistra @subentry individuare la
+@cindex individuare @subentry la stringa pi@`u lunga da sinistra
Si pu@`o ottenere lo stesso effetto di @samp{RS = ""} assegnando la stringa
@code{"\n\n+"} a @code{RS}. Quest'espressione regolare individua
il ritorno a capo alla fine del record e una o pi@`u righe vuote dopo il
@@ -8593,7 +8686,7 @@ Quindi, il record successivo non inizia prima della
successiva riga non
vuota; indipendentemente dal numero di righe vuote presenti in una voce di
banca-dati, esse sono considerate come un unico separatore di record.
-@cindex angolo buio, record multiriga
+@cindex angolo buio @subentry record multiriga
Comunque, c'@`e una sostanziale differenza tra @samp{RS = ""} e @samp{RS =
"\n\n+"}. Nel primo caso, i ritorni a capo iniziali nel @value{DF} di
input vengono ignorati, e se un file termina senza righe vuote aggiuntive dopo
@@ -8601,8 +8694,8 @@ l'ultimo record, il ritorno a capo viene rimosso dal
record. Nel secondo
caso, questa particolare elaborazione non viene fatta.
@value{DARKCORNER}
-@cindex separatore di campo, nei record multiriga
-@cindex @code{FS}, nei record multiriga
+@cindex separatore di campo @subentry nei record multiriga
+@cindex @code{FS} (variabile) @subentry nei record multiriga
Ora che l'input @`e separato in record, il secondo passo @`e quello di
separare i
campi all'interno dei record. Un modo per farlo @`e quello di dividere in
campi ognuna delle righe in input
@@ -8675,10 +8768,10 @@ Un semplice programma per elaborare questo file @`e il
seguente:
BEGIN @{ RS = "" ; FS = "\n" @}
@{
- print "Il nome @`e:", $1
- print "L'indirizzo @`e:", $2
- print "Citt@`a e Stato sono:", $3
- print ""
+print "Il nome @`e:", $1
+print "L'indirizzo @`e:", $2
+print "Citt@`a e Stato sono:", $3
+print ""
@}
@end example
@@ -8734,9 +8827,9 @@ I record sono separati da ricorrenze di caratteri
corrispondenti a
standard POSIX.)
@end table
-@cindex @command{gawk}, @code{RT} variabile in
-@cindex @code{RT}, variabile
-@cindex differenze tra @command{awk} e @command{gawk}, variabili
@code{RS}/@code{RT}
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili
@code{RS}/@code{RT}
Se non @`e eseguito in modalit@`a di compatibilit@`a (@pxref{Opzioni}),
@command{gawk} imposta @code{RT} al testo di input corrispondente
al valore specificato da @code{RS}.
@@ -8746,8 +8839,8 @@ corrisponde a @code{RS}, @command{gawk} imposta @code{RT}
alla stringa nulla.
@node Getline
@section Richiedere input usando @code{getline}
-@cindex @code{getline}, comando, input esplicito con
-@cindex input esplicito
+@cindex @code{getline} (comando) @subentry input esplicito con
+@cindex input @subentry esplicito
Finora abbiamo ottenuto i dati di input dal flusso di input principale di
@command{awk}: lo standard input (normalmente la tastiera, a volte
l'output di un altro programma) o i
@@ -8774,11 +8867,12 @@ delle Parti I e II
@end ifnotinfo
e avere acquisito una buona conoscenza di come funziona @command{awk}.
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile, con comando @command{getline}
-@cindex differenze tra @command{awk} e @command{gawk}, comando @code{getline}
-@cindex @code{getline}, comando, codice di ritorno
-@cindex @option{--sandbox}, opzione, ridirezione dell'input con @code{getline}
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile) @subentry con comando @command{getline}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry comando
@code{getline}
+@cindex @code{getline} (comando) @subentry codice di ritorno
+@cindex @option{--sandbox} (opzione) @subentry ridirezione dell'input con
@code{getline}
+@cindex opzione @subentry @option{--sandbox} @subentry ridirezione dell'input
con @code{getline}
Il comando @code{getline} restituisce 1 se trova un record e 0 se
trova la fine del file. Se si verifica qualche errore cercando di leggere
@@ -8901,8 +8995,8 @@ regola presente nel programma. @xref{Istruzione next}.
@node Getline variabile
@subsection Usare @code{getline} in una variabile
-@cindex @code{getline} in una variabile
-@cindex variabili, usare in comando @code{getline}
+@cindex @code{getline} (comando) @subentry in una variabile
+@cindex variabili @subentry usare in comando @code{getline}
Si pu@`o usare @samp{getline @var{var}} per leggere il record successivo
in input ad @command{awk} nella variabile @var{var}. Non vien fatta
@@ -8955,12 +9049,12 @@ il valore di @code{NF} non cambiano.
@node Getline file
@subsection Usare @code{getline} da un file
-@cindex @code{getline} da un file
-@cindex input, ridirezione dell'
+@cindex @code{getline} (comando) @subentry da un file
+@cindex input @subentry ridirezione dell'
@cindex ridirezione dell'input
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<} (I/O)
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<} (I/O)
-@cindex operatori di input/output
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<} (I/O)
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore
@code{<} (I/O)
+@cindex operatori @subentry input/output
Si usa @samp{getline < @var{file}} per leggere il record successivo da
@var{file}. Qui, @var{file} @`e un'espressione di tipo stringa che
specifica il @value{FN}. @samp{< @var{file}} @`e una cosidetta
@@ -8972,11 +9066,11 @@ corrente:
@example
@{
- if ($1 == 10) @{
- getline < "secondary.input"
- print
- @} else
- print
+if ($1 == 10) @{
+ getline < "secondary.input"
+ print
+@} else
+ print
@}
@end example
@@ -8986,7 +9080,7 @@ modo normale, per cui vengono cambiati i valori di
@code{$0} e degli altri
campi, producendo un nuovo valore di @code{NF}.
Viene impostato anche @code{RT}.
-@cindex POSIX @command{awk}, operatore @code{<} e
+@cindex POSIX @command{awk} @subentry @code{<} (operatore)
@c Thanks to Paul Eggert for initial wording here
Per lo standard POSIX, @samp{getline < @var{espressione}} @`e ambiguo se
@var{espressione} contiene operatori che non sono all'interno di parentesi,
@@ -8998,7 +9092,7 @@ programma dev'essere portabile su tutte le
implementazioni di @command{awk}.
@node Getline variabile file
@subsection Usare @code{getline} in una variabile da un file
-@cindex variabili, usare in comando @code{getline}
+@cindex variabili @subentry usare in comando @code{getline}
Si usa @samp{getline @var{var} < @var{file}} per leggere l'input
dal file
@@ -9017,12 +9111,12 @@ Tale record @`e sostituito dal contenuto del file
@example
@{
- if (NF == 2 && $1 == "@@include") @{
- while ((getline line < $2) > 0)
- print line
- close($2)
- @} else
- print
+if (NF == 2 && $1 == "@@include") @{
+ while ((getline line < $2) > 0)
+ print line
+ close($2)
+@} else
+ print
@}
@end example
@@ -9053,11 +9147,11 @@ Se non si pu@`o ottenerla, l'attenzione ai dettagli
pu@`o aiutare.}
@author Brian Kernighan
@end quotation
-@cindex @code{|} (barra verticale), operatore @code{|} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|} (I/O)
-@cindex input, @dfn{pipeline}
-@cindex @dfn{pipe}, input
-@cindex operatori, input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|} (I/O)
+@cindex input @subentry @dfn{pipeline}
+@cindex @dfn{pipe} @subentry input
+@cindex operatori @subentry input/output
L'output di un comando pu@`o anche essere convogliato in @code{getline}, usando
@samp{@var{comando} | getline}. In
questo caso, la stringa @var{comando} viene eseguita come comando di shell e
@@ -9071,13 +9165,13 @@ costituito da un comando di shell.
@example
@group
@{
- if ($1 == "@@execute") @{
- tmp = substr($0, 10) # Rimuove "@@execute"
- while ((tmp | getline) > 0)
- print
- close(tmp)
- @} else
- print
+if ($1 == "@@execute") @{
+ tmp = substr($0, 10) # Rimuove "@@execute"
+ while ((tmp | getline) > 0)
+ print
+ close(tmp)
+@} else
+ print
@}
@end group
@end example
@@ -9105,9 +9199,9 @@ gastone
@noindent
il programma potrebbe produrre:
-@cindex Robbins, Bill
-@cindex Robbins, Miriam
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Bill
+@cindex Robbins @subentry Miriam
+@cindex Robbins @subentry Arnold
@example
pippo
pluto
@@ -9128,7 +9222,7 @@ di @code{NF}, e ricalcola il valore di @code{$0}. I
valori di
@code{NR} e @code{FNR} non vengono cambiati.
Viene impostato @code{RT}.
-@cindex POSIX @command{awk}, operatore I/O @code{|} e
+@cindex POSIX @command{awk} @subentry @code{|} (operatore I/O)
@c Thanks to Paul Eggert for initial wording here
Per lo standard POSIX, @samp{@var{espressione} | getline} @`e ambiguo se
@var{espressione} contiene operatori che non sono all'interno di parentesi,
@@ -9138,9 +9232,9 @@ l'operatore di concatenazione non @`e tra parentesi. Si
dovrebbe scrivere
invece @samp{(@w{"echo "} "date") | getline}, se il programma dev'essere
portabile su tutte le implementazioni di @command{awk}.
-@cindex Brian Kernighan, @command{awk} di
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
@quotation NOTA
Sfortunatamente, @command{gawk} non ha un comportamento uniforme nel
trattare un costrutto come @samp{@w{"echo "} "date" | getline}.
@@ -9156,7 +9250,7 @@ esplicite.
@node Getline variabile @dfn{pipe}
@subsection Usare @code{getline} in una variabile da una @dfn{pipe}
-@cindex variabili, usare in comando @code{getline}
+@cindex variabili @subentry usare in comando @code{getline}
Quando si usa @samp{@var{comando} | getline @var{var}},
l'output di @var{comando} @`e inviato tramite una @dfn{pipe} a
@@ -9167,9 +9261,9 @@ stampa:
@example
BEGIN @{
- "date" | getline current_time
- close("date")
- print "Report printed on " current_time
+"date" | getline current_time
+close("date")
+print "Report printed on " current_time
@}
@end example
@@ -9190,12 +9284,12 @@ programma dev'essere portabile su tutte le
implementazioni di @command{awk}.
@node Getline coprocesso
@subsection Usare @code{getline} da un coprocesso
-@cindex coprocessi, @code{getline} da
-@cindex @code{getline}, comando, coprocessi@comma{} usare dal
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|&} (I/O)
-@cindex operatori, input/output
-@cindex differenze tra @command{awk} e @command{gawk}, operatori di
input/output
+@cindex coprocessi @subentry @code{getline} da
+@cindex @code{getline} (comando) @subentry coprocessi, usare da
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|&} (I/O)
+@cindex operatori @subentry input/output
+@cindex differenze tra @command{awk} e @command{gawk} @subentry operatori di
input/output
Leggere dell'input in @code{getline} da una @dfn{pipe} @`e un'operazione
unidirezionale.
@@ -9238,7 +9332,7 @@ dove i coprocessi vengono trattati pi@`u dettagliatamente.
@node Getline variabile coprocesso
@subsection Usare @code{getline} in una variabile da un coprocesso
-@cindex variabili, usare in comando @code{getline}
+@cindex variabili @subentry usare in comando @code{getline}
Quando si usa @samp{@var{comando} |& getline @var{var}}, l'output dal
coprocesso @var{comando} viene inviato tramite una @dfn{pipe} bidirezionale a
@@ -9268,10 +9362,10 @@ Quando @code{getline} cambia il valore di @code{$0} e
@code{NF},
programma per iniziare a provare il nuovo record su ogni criterio di ricerca.
Comunque, il nuovo record viene provato su ogni regola successiva.
-@cindex differenze tra @command{awk} e @command{gawk}, limitazioni di
implementazione
-@cindex implementazione, problemi, @command{gawk}, limiti
-@cindex @command{awk}, implementazioni, limiti
-@cindex @command{gawk}, problemi di implementazioni, limiti
+@cindex differenze tra @command{awk} e @command{gawk} @subentry limitazioni di
implementazione
+@cindex implementazione @subentry problemi di @subentry @command{gawk}, limiti
+@cindex @command{awk} @subentry implementazioni di @subentry limiti delle
+@cindex @command{gawk} @subentry problemi di implementazione @subentry limiti
@item
Alcune tra le prime implementazioni di @command{awk} limitano a una sola il
numero di @dfn{pipeline} che un programma @command{awk} pu@`o tenere aperte.
@@ -9279,11 +9373,11 @@ In @command{gawk}, non c'@`e questo limite.
Si possono aprire tante @dfn{pipeline} (e coprocessi) quante ne permette il
sistema operativo in uso.
-@cindex effetti collaterali, variabile @code{FILENAME}
-@cindex @code{FILENAME}, variabile, impostare con @code{getline}
-@cindex angolo buio, variabile @code{FILENAME}
-@cindex @code{getline}, comando, variabile @code{FILENAME} e
-@cindex @code{BEGIN}, criterio di ricerca, @code{getline} e
+@cindex effetti collaterali @subentry variabile @code{FILENAME}
+@cindex @code{FILENAME} (variabile) @subentry impostare con @code{getline}
+@cindex angolo buio @subentry variabile @subentry @code{FILENAME}
+@cindex @code{getline} (comando) @subentry variabile @code{FILENAME} e
+@cindex @code{BEGIN} (regola) @subentry @code{getline} e
@item
Un interessante effetto collaterale si ha se si usa @code{getline}, senza
una ridirezione, all'interno di una regola @code{BEGIN}. Poich@'e una
@@ -9335,9 +9429,9 @@ From: Duncan Moore <duncan.moore@@gmx.com>
@example
BEGIN @{
- system("echo 1 > f")
- while ((getline a[++c] < "f") > 0) @{ @}
- print c
+system("echo 1 > f")
+while ((getline a[++c] < "f") > 0) @{ @}
+print c
@}
@end example
@@ -9353,7 +9447,7 @@ se c'@`e un valore di stringa da assegnare.
@node Sommario di getline
@subsection Sommario delle varianti di @code{getline}
-@cindex @code{getline}, comando, varianti
+@cindex @code{getline} (comando) @subentry varianti
La @ref{tabella-varianti-getline}
riassume le otto varianti di @code{getline},
@@ -9379,10 +9473,10 @@ Nota: per ogni variante, @command{gawk} imposta la
variabile predefinita
@node Timeout in lettura
@section Leggere input entro un tempo limite
-@cindex tempo limite, leggere input
-@cindex @dfn{timeout}, si veda tempo limite
+@cindex tempo limite @subentry entro il quale leggere input
+@cindex @dfn{timeout} @seeentry{tempo limite}
-@cindex differenze tra @command{awk} e @command{gawk}, tempo limite per lettura
+@cindex differenze tra @command{awk} e @command{gawk} @subentry tempo limite
per lettura
@ifnotinfo
Questa
@end ifnotinfo
@@ -9412,9 +9506,9 @@ non riceve alcuna risposta dal server dopo un certo
periodo di tempo:
Service = "/inet/tcp/0/localhost/daytime"
PROCINFO[Service, "READ_TIMEOUT"] = 100
if ((Service |& getline) > 0)
- print $0
+print $0
else if (ERRNO != "")
- print ERRNO
+print ERRNO
@end group
@end example
@@ -9425,7 +9519,7 @@ non pi@`u di cinque secondi:
@example
PROCINFO["/dev/stdin", "READ_TIMEOUT"] = 5000
while ((getline < "/dev/stdin") > 0)
- print $0
+print $0
@end example
@command{gawk} termina l'operazione di lettura se l'input non
@@ -9463,8 +9557,8 @@ per l'input diventa illimitata.
@example
PROCINFO[Service, "READ_TIMEOUT"] = 1000
while ((Service |& getline) > 0) @{
- print $0
- PROCINFO[Service, "READ_TIMEOUT"] -= 100
+print $0
+PROCINFO[Service, "READ_TIMEOUT"] -= 100
@}
@end example
@@ -9476,6 +9570,8 @@ la prima volta. Per questo, cambiare il valore del tempo
limite come nell'esempio appena visto non @`e molto utile.
@end quotation
+@cindex @env{GAWK_READ_TIMEOUT} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{GAWK_READ_TIMEOUT}
Se l'elemento di @code{PROCINFO} non @`e presente e la variabile d'ambiente
@env{GAWK_READ_TIMEOUT} esiste,
@command{gawk} usa il suo valore per inizializzare il valore di tempo limite.
@@ -9502,9 +9598,9 @@ indefinitamente in attesa che qualche altro processo lo
apra in scrittura.
@node Proseguire dopo errore in input
@section Elaborare ulteriore input dopo certi errori di I/O
@cindex proseguire dopo errore in input
-@cindex errore in input, possibilit@`a di proseguire
+@cindex errore @subentry in input @subentry possibilit@`a di proseguire
-@cindex differenze tra @command{awk} e @command{gawk}, proseguire dopo errore
in input
+@cindex differenze tra @command{awk} e @command{gawk} @subentry proseguire
dopo errore in input
@ifnotinfo
Questa
@end ifnotinfo
@@ -9543,9 +9639,9 @@ modo non bloccante.
@node Directory su riga di comando
@section Directory sulla riga di comando
-@cindex differenze tra @command{awk} e @command{gawk}, directory sulla riga di
comando
-@cindex directory, riga di comando
-@cindex riga di comando, directory su
+@cindex differenze tra @command{awk} e @command{gawk} @subentry directory
sulla riga di comando
+@cindex directory @subentry riga di comando
+@cindex riga di comando @subentry directory su
Per lo standard POSIX, i file che compaiono sulla riga di comando di
@command{awk} devono essere file di testo; @`e un errore fatale se non lo sono.
@@ -9640,6 +9736,8 @@ o da un coprocesso.
@code{PROCINFO[@var{file}, "READ_TIMEOUT"]} si pu@`o usare per impostare un
tempo limite alle operazioni di lettura da @var{file}.
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX
@item
Le directory sulla riga di comando generano un errore fatale per
@command{awk} standard;
@@ -9666,7 +9764,7 @@ comprese le astensioni, per ciascun quesito.
@chapter Stampare in output
@cindex stampare
-@cindex output, stampare, si veda stampare
+@cindex output @subentry stampare @seeentry{stampare}
Una delle azioni che un programma fa pi@`u comunemente, @`e quella di produrre
@dfn{stampe}, ossia scrivere in output l'input letto, tutto o in parte.
Si pu@`o usare l'istruzione @code{print} per una stampa semplice, e
l'istruzione
@@ -9681,8 +9779,8 @@ Per stampare fornendo delle specifiche, @`e necessario
usare
l'istruzione @code{printf}
(@pxref{Printf}).
-@cindex istruzione @code{print}
-@cindex istruzione @code{printf}
+@cindex istruzione @subentry @code{print}
+@cindex istruzione @subentry @code{printf}
Oltre alla stampa semplice e formattata, questo @value{CHAPTER}
esamina anche le ridirezioni di I/O verso file e @dfn{pipe}, introduce
i @value{FNS} speciali che @command{gawk} elabora internamente,
@@ -9738,9 +9836,9 @@ del record corrente (come @code{$1}), variabili, o
quasiasi espressione
@command{awk}. I valori numerici sono convertiti in stringhe prima di essere
stampati.
-@cindex record, stampare
-@cindex righe, vuote, stampare
-@cindex testo, stampare
+@cindex record @subentry stampare
+@cindex righe @subentry vuote @subentry stampare
+@cindex testo @subentry stampare
Una semplice istruzione @samp{print} senza specificare elementi equivale a
@samp{print $0}: stampa l'intero record corrente. Per stampare una riga
vuota, si usa @samp{print ""}.
@@ -9764,7 +9862,7 @@ resto della stringa. Una
singola istruzione @code{print} pu@`o in questo modo generare un numero
qualsiasi di righe.
-@cindex ritorno a capo, stampare un
+@cindex ritorno a capo @subentry stampare un
Quel che segue @`e un esempio di stampa di una stringa che contiene al suo
interno dei
@ifinfo
@@ -9792,7 +9890,7 @@ $ @kbd{awk 'BEGIN @{ print "riga uno\nriga due\nriga tre"
@}'}
@end group
@end example
-@cindex campi, stampare
+@cindex campi @subentry stampare
Il prossimo esempio, eseguito sul file @file{inventory-shipped},
stampa i primi due campi di ogni record in input, separandoli con uno
spazio:
@@ -9805,8 +9903,8 @@ $ @kbd{awk '@{ print $1, $2 @}' inventory-shipped}
@dots{}
@end example
-@cindex istruzione @code{print}, virgole, omettere
-@cindex debug, istruzione @code{print}@comma{} omissione virgole
+@cindex istruzione @subentry @code{print} @subentry virgole, omettere
+@cindex debug @subentry istruzione @code{print} @subentry omissione virgole
Un errore frequente usando l'istruzione @code{print} @`e quello di tralasciare
la virgola tra due elementi. Questo ha spesso come risultato la stampa di
elementi attaccati tra loro, senza lo spazio di separazione. Il motivo per
@@ -9823,7 +9921,7 @@ $ @kbd{awk '@{ print $1 $2 @}' inventory-shipped}
@dots{}
@end example
-@cindex @code{BEGIN}, criterio di ricerca, intestazioni, aggiungere
+@cindex @code{BEGIN} (regola) @subentry intestazioni, aggiungere
Per chi non conosce il file @file{inventory-shipped} nessuno
dei due output di esempio risulta molto comprensibile. Una riga iniziale di
intestazione li renderebbe pi@`u chiari.
@@ -9834,8 +9932,8 @@ stampate una volta sola:
@example
awk 'BEGIN @{ print "Mese Contenitori"
- print "----- -----------" @}
- @{ print $1, $2 @}' inventory-shipped
+ print "----- -----------" @}
+ @{ print $1, $2 @}' inventory-shipped
@end example
@noindent
@@ -9858,13 +9956,13 @@ campi:
@example
@group
awk 'BEGIN @{ print "Mese Contenitori"
- print "----- -----------" @}
- @{ print $1, " ", $2 @}' inventory-shipped
+ print "----- -----------" @}
+ @{ print $1, " ", $2 @}' inventory-shipped
@end group
@end example
-@cindex istruzione @code{printf}, colonne@comma{} allineamento
-@cindex colonne, allineamento
+@cindex istruzione @subentry @code{printf} @subentry colonne, allineamento
+@cindex colonne @subentry allineamento
Allineare le colonne in questo modo pu@`o diventare piuttosto
complicato, quando ci sono parecchie colonne da tenere allineate. Contare gli
spazi per due o tre colonne @`e semplice, ma oltre questo limite comincia a
@@ -9872,9 +9970,9 @@ volerci molto tempo. Ecco perch@'e @`e disponibile
l'istruzione @code{printf}
(@pxref{Printf});
una delle possibilit@`a che offre @`e quella di allineare colonne di dati.
-@cindex continuazione di riga, in istruzione @code{print}
-@cindex istruzione @code{print}, continuazione di riga e
-@cindex @code{print}, istruzione, continuazione di riga e
+@cindex continuazione di riga @subentry in istruzione @code{print}
+@cindex istruzione @subentry @code{print} @subentry continuazione di riga e
+@cindex @code{print} (istruzione) @subentry continuazione di riga e
@quotation NOTA
Si pu@`o continuare su pi@`u righe sia l'istruzione @code{print} che
l'istruzione
@code{printf} semplicemente mettendo un ritorno a capo dopo una virgola
@@ -9885,7 +9983,7 @@ qualsiasi
@node Separatori di output
@section I separatori di output e come modificarli
-@cindex variabile @code{OFS}
+@cindex variabile @subentry @code{OFS}
Come detto sopra, un'istruzione @code{print} contiene una lista di elementi
separati da virgole. Nell'output, gli elementi sono solitamente separati
da spazi singoli. Non @`e detto tuttavia che debba sempre essere
cos@`{@dotless{i}}; uno
@@ -9902,10 +10000,10 @@ ci aggiunge una stringa detta @dfn{separatore record
in output} (o
(cio@`e, un carattere di ritorno a capo). Quindi, ogni istruzione
@code{print} normalmente genera [almeno] una riga a s@'e stante.
-@cindex output, record
-@cindex separatore di record in output, si veda @code{ORS}, variabile
-@cindex @code{ORS}, variabile
-@cindex @code{BEGIN}, criterio di ricerca, variabili @code{OFS}/@code{ORS},
assegnare valori a
+@cindex output @subentry record
+@cindex separatore di record @subentry in output @seeentry{@code{ORS}
(variabile)}
+@cindex @code{ORS} (variabile)
+@cindex @code{BEGIN} (regola) @subentry variabili @code{OFS}/@code{ORS},
assegnare valori a
Per cambiare il tipo di separazione in output di campi e record, si impostano
valori differenti alle variabili @code{OFS} e @code{ORS}. Il posto pi@`u
indicato per farlo @`e nella regola @code{BEGIN}
@@ -9951,8 +10049,8 @@ programma viene scritto tutto su un'unica riga.
@node OFMT
@section Controllare l'output di numeri con @code{print}
-@cindex numerico, formato di output
-@cindex formati numerici di output
+@cindex numerico @subentry formato di output
+@cindex formato @subentry numerico di output
Quando si stampano valori numerici con l'istruzione @code{print},
@command{awk} converte internamente ogni numero in una stringa di caratteri
e stampa quella stringa. @command{awk} usa la funzione @code{sprintf()}
@@ -9972,8 +10070,8 @@ in
@ref{Lettere di controllo}.
@cindexawkfunc{sprintf}
-@cindex @code{OFMT}, variabile
-@cindex output, specificatore di formato@comma{} @code{OFMT}
+@cindex @code{OFMT} (variabile)
+@cindex output @subentry specificatore di formato @subentry @code{OFMT}
La variabile predefinita @code{OFMT} contiene la specifica di formato
che @code{print} usa con @code{sprintf()} per convertire un numero in
una stringa per poterla stampare.
@@ -9990,9 +10088,9 @@ $ @kbd{awk 'BEGIN @{}
@end example
@noindent
-@cindex angolo buio, variabile @code{OFMT}
-@cindex POSIX @command{awk}, variabile @code{OFMT} e
-@cindex variabile @code{OFMT}, POSIX @command{awk} e
+@cindex angolo buio @subentry variabile @subentry @code{OFMT}
+@cindex POSIX @command{awk} @subentry @code{OFMT} (variabile)
+@cindex variabile @subentry @code{OFMT} @subentry POSIX @command{awk} in
Per lo standard POSIX, il comportamento di @command{awk} @`e indefinito
se @code{OFMT} contiene qualcosa di diverso da una specifica di conversione
di un numero in virgola mobile.
@@ -10001,10 +10099,10 @@ di un numero in virgola mobile.
@node Printf
@section Usare l'istruzione @code{printf} per stampe sofisticate
-@cindex istruzione @code{printf}
-@cindex @code{printf}, istruzione
-@cindex output, formattato
-@cindex formattare l'output
+@cindex istruzione @subentry @code{printf}
+@cindex @code{printf} (istruzione)
+@cindex output @subentry formattare
+@cindex formattare @subentry output
Per un controllo pi@`u ampio sul formato di output di quello fornito da
@code{print}, si pu@`o usare @code{printf}.
Con @code{printf} si pu@`o
@@ -10024,8 +10122,8 @@ cifre stampare dopo il separatore decimale).
@node Printf Fondamenti
@subsection Sintassi dell'istruzione @code{printf}
-@cindex istruzione @code{printf}, sintassi dell'
-@cindex @code{printf}, sintassi dell'istruzione
+@cindex istruzione @subentry @code{printf} @subentry sintassi
+@cindex @code{printf} (istruzione) @subentry sintassi
Una semplice istruzione @code{printf} @`e qualcosa di simile a questo:
@example
@@ -10079,9 +10177,9 @@ in output.
@node Lettere di controllo
@subsection Lettere di controllo del formato
-@cindex istruzione @code{printf}, lettere di controllo del formato
-@cindex @code{printf}, istruzione, lettere di controllo del formato
-@cindex specificatori di formato, istruzione @code{printf}
+@cindex istruzione @subentry @code{printf} @subentry lettere di controllo del
formato
+@cindex @code{printf} (istruzione) @subentry lettere di controllo del formato
+@cindex specificatori di formato @subentry istruzione @code{printf}
Uno specificatore di formato inizia col carattere @samp{%} e termina con
una @dfn{lettera di controllo del formato}; e dice all'istruzione
@@ -10122,8 +10220,8 @@ Stampa un numero come un carattere; quindi,
@samp{printf "%c",
65} stampa la lettera @samp{A}. L'output per un valore costituito da una
stringa @`e il primo carattere della stringa stessa.
-@cindex angolo buio, caratteri di controllo del formato
-@cindex @command{gawk}, caratteri di controllo del formato
+@cindex angolo buio @subentry caratteri di controllo del formato
+@cindex @command{gawk} @subentry caratteri di controllo del formato
@quotation NOTA
Lo standard POSIX richiede che il primo carattere di una stringa sia stampato.
In localizzazioni con caratteri multibyte, @command{gawk} tenta di
@@ -10226,8 +10324,8 @@ Questa notazione non serve per stampare alcun
argomento e ignora eventuali modificatori.
@end table
-@cindex angolo buio, caratteri di controllo del formato
-@cindex @command{gawk}, caratteri di controllo del formato
+@cindex angolo buio @subentry caratteri di controllo del formato
+@cindex @command{gawk} @subentry caratteri di controllo del formato
@quotation NOTA
Quando si usano lettere di controllo del formato per numeri interi
per stampare valori esterni all'intervallo massimo disponibile nel
@@ -10255,9 +10353,9 @@ si prega di fare riferimento a quel testo.
@node Modificatori di formato
@subsection Modificatori per specifiche di formato @code{printf}
-@cindex istruzione @code{printf}, modificatori
-@cindex @code{printf}, istruzione, modificatori
-@cindex modificatori@comma{} in specificatori di formato
+@cindex istruzione @subentry @code{printf} @subentry modificatori
+@cindex @code{printf} (istruzione) @subentry modificatori
+@cindex modificatori @subentry in specificatori di formato
Una specifica di formato pu@`o anche includere dei @dfn{modificatori} che
possono controllare che parte stampare del valore dell'elemento, e anche
quanto spazio utilizzare per stamparlo.
@@ -10269,18 +10367,18 @@ spazi nell'output. Questi sono i modificatori
previsti, nell'ordine in
cui possono apparire:
@table @asis
-@cindex differenze tra @command{awk} e @command{gawk}, tra istruzioni
@code{print} e @code{printf}
-@cindex istruzione @code{printf}, specificatori posizionali
-@cindex @code{printf}, istruzione, specificatori posizionali
+@cindex differenze tra @command{awk} e @command{gawk} @subentry tra istruzioni
@code{print} e @code{printf}
+@cindex istruzione @subentry @code{printf} @subentry specificatori di posizione
+@cindex @code{printf} (istruzione) @subentry specificatori di posizione
@c the code{} does NOT start a secondary
-@cindex specificatori posizionali, istruzione @code{printf}
+@cindex specificatori di posizione @subentry istruzione @code{printf}
@item @code{@var{N}$}
-Una costante intera seguita da un @samp{$} @`e uno @dfn{specificatore
posizionale}.
+Una costante intera seguita da un @samp{$} @`e uno @dfn{specificatore di
posizione}.
Normalmente, le specifiche di formato sono applicate agli argomenti
nell'ordine in cui appaiono nella stringa di formato. Con uno specificatore
-posizionale, la specifica di formato @`e applicata a un argomento
+di posizione, la specifica di formato @`e applicata a un argomento
indicato per numero, invece che a quello che
-sarebbe il prossimo argomento nella lista. Gli specificatori posizionali
+sarebbe il prossimo argomento nella lista. Gli specificatori di posizione
iniziano a contare partendo da uno. Quindi:
@example
@@ -10295,7 +10393,7 @@ A prima vista, questa funzionalit@`a non sembra di
grande utilit@`a.
Si tratta in effetti di un'estensione @command{gawk}, pensata per essere
usata nella traduzione di messaggi emessi in fase di esecuzione.
@xref{Ordinamento di printf},
-che descrive come e perch@'e usare specificatori posizionali.
+che descrive come e perch@'e usare specificatori di posizione.
Per ora li possiamo ignorare.
@item - @code{-} (Segno meno)
@@ -10465,9 +10563,9 @@ printf "%" w "." p "s\n", s
@noindent
Questo codice non @`e di facile lettura, ma funziona.
-@c @cindex controlli @command @{lint}
-@cindex debug, errori fatali, @code{printf}, stringhe di formato
-@cindex POSIX @command{awk}, stringhe di formato @code{printf} e
+@c @cindex lint checks
+@cindex debug @subentry errori fatali @subentry @code{printf}, stringhe di
formato
+@cindex POSIX @command{awk} @subentry stringhe di formato @code{printf}
Chi programma in C probabilmente @`e abituato a specificare modificatori
addizionali (@samp{h}, @samp{j}, @samp{l}, @samp{L}, @samp{t} e @samp{z}) nelle
stringhe di formato di @code{printf}. Questi modificatori non sono validi
@@ -10528,8 +10626,8 @@ programma @command{awk}:
@example
awk 'BEGIN @{ print "Nome Numero"
- print "---- ------" @}
- @{ printf "%-10s %s\n", $1, $2 @}' mail-list
+ print "---- ------" @}
+ @{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
L'esempio precedente usa sia l'istruzione @code{print} che l'istruzione
@@ -10538,8 +10636,8 @@ risultati usando solo istruzioni @code{printf}:
@example
awk 'BEGIN @{ printf "%-10s %s\n", "Nome", "Numero"
- printf "%-10s %s\n", "----", "------" @}
- @{ printf "%-10s %s\n", $1, $2 @}' mail-list
+ printf "%-10s %s\n", "----", "------" @}
+ @{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
@noindent
@@ -10552,18 +10650,19 @@ evidenziare memorizzandola in una variabile,
cos@`{@dotless{i}}:
@example
awk 'BEGIN @{ format = "%-10s %s\n"
- printf format, "Nome", "Numero"
- printf format, "----", "------" @}
- @{ printf format, $1, $2 @}' mail-list
+ printf format, "Nome", "Numero"
+ printf format, "----", "------" @}
+ @{ printf format, $1, $2 @}' mail-list
@end example
@node Ridirezione
@section Ridirigere l'output di @code{print} e @code{printf}
-@cindex output, ridirezione
+@cindex output @subentry ridirezione
@cindex ridirezione dell'output
-@cindex @option{--sandbox}, opzione, ridirezione dell'output con @code{print},
@code{printf}
+@cindex @option{--sandbox} (opzione) @subentry ridirezione dell'output con
@code{print}, @code{printf}
+@cindex opzione @subentry @option{--sandbox} @subentry ridirezione dell'output
con @code{print}, @code{printf}
Finora, l'output di @code{print} e @code{printf} @`e stato diretto
verso lo standard output,
che di solito @`e lo schermo. Sia @code{print} che @code{printf} possono
@@ -10582,8 +10681,8 @@ comandi della shell, l'unica differenza @`e che si
trovano all'interno di
un programma @command{awk}.
@c the commas here are part of the see also
-@cindex istruzione @code{print}, si veda anche ridirezione dell'output
-@cindex istruzione @code{printf}, si veda anche ridirezione dell'output
+@cindex istruzione @subentry @code{print} @seealso{ridirezione dell'output}
+@cindex istruzione @subentry @code{printf} @seealso{ridirezione dell'output}
Ci sono quattro forme di ridirezione dell'output:
output scritto su un file,
output aggiunto in fondo a un file,
@@ -10593,9 +10692,9 @@ Vengono descritti per l'istruzione @code{print},
ma funzionano allo stesso modo per @code{printf}:
@table @code
-@cindex @code{>} (parentesi acuta destra), operatore @code{>} (I/O)
-@cindex parentesi acuta destra (@code{>}), operatore @code{>} (I/O)
-@cindex operatori, input/output
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>} (I/O)
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore
@code{>} (I/O)
+@cindex operatori @subentry input/output
@item print @var{elementi} > @var{output-file}
Questa ridirezione stampa gli elementi nel file di output chiamato
@var{output-file}. Il @value{FN} @var{output-file} pu@`o essere
@@ -10634,8 +10733,8 @@ $ @kbd{cat lista-nomi}
@noindent
Ogni file in output contiene un nome o un numero su ogni riga.
-@cindex @code{>} (parentesi acuta destra), operatore @code{>>} (I/O)
-@cindex parentesi acuta destra (@code{>}), operatore @code{>>} (I/O)
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>>} (I/O)
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore
@code{>>} (I/O)
@item print @var{elementi} >> @var{output-file}
Questa ridirezione stampa gli elementi in un file di output preesistente,
di nome @var{output-file}. La differenza tra questa ridirezione e quella
@@ -10644,9 +10743,9 @@ con un solo @samp{>} @`e che il precedente contenuto
(se esiste) di
aggiunto in fondo al file.
Se @var{output-file} non esiste, viene creato.
-@cindex @code{|} (barra verticale), operatore @code{|} (I/O)
-@cindex @dfn{pipe}, output
-@cindex output, a @dfn{pipe}
+@cindex @code{|} (barra verticale) @subentry operatore @code{|} (I/O)
+@cindex @dfn{pipe} @subentry output
+@cindex output @subentry a @dfn{pipe}
@item print @var{elementi} | @var{comando}
@`E possibile inviare output a un altro programma usando una @dfn{pipe}
invece di inviarlo a un file. Questa ridirezione apre una @dfn{pipe} verso
@@ -10670,8 +10769,8 @@ alone for now and let's hope no-one notices.
@example
@group
awk '@{ print $1 > "nomi.non.ordinati"
- comando = "sort -r > nomi.ordinati"
- print $1 | comando @}' mail-list
+comando = "sort -r > nomi.ordinati"
+print $1 | comando @}' mail-list
@end group
@end example
@@ -10704,9 +10803,9 @@ perch@'e (se si vuole riusare lo stesso file o comando)
esattamente nello stesso modo.
@cindex coprocessi
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex operatori, input/output
-@cindex differenze tra @command{awk} e @command{gawk}, operatori di
input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex operatori @subentry input/output
+@cindex differenze tra @command{awk} e @command{gawk} @subentry operatori di
input/output
@item print @var{elementi} |& @var{comando}
Questa ridirezione stampa gli elementi nell'input di @var{comando}.
La differenza tra questa ridirezione e quella
@@ -10737,7 +10836,7 @@ il particolare @var{file} o @var{comando} che si @`e
specificato non @`e gi@`a
stato utilizzato in scrittura dal programma o se @`e stato chiuso
dopo l'ultima scrittura.
-@cindex debug, stampare
+@cindex debug @subentry stampare
@`E un errore comune usare la ridirezione @samp{>} per la prima istruzione
@code{print} verso un file, e in seguito usare @samp{>>} per le successive
scritture in output:
@@ -10762,10 +10861,10 @@ Tuttavia il mischiare gli operatori per lo stesso
file @`e sintomo di uno
stile di programmazione inelegante, e pu@`o causare confusione in chi legge
il programma.)
-@cindex differenze tra @command{awk} e @command{gawk}, limitazioni di
implementazione
-@cindex problemi di implementazione, @command{gawk}, limitazioni
-@cindex @command{awk}, problemi di implementazione, @dfn{pipe}
-@cindex @command{gawk}, problemi di implementazione, @dfn{pipe}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry limitazioni di
implementazione
+@cindex problemi di implementazione @subentry @command{gawk} @subentry
limitazioni
+@cindex @command{awk} @subentry problemi di implementazione @subentry
@dfn{pipe}
+@cindex @command{gawk} @subentry problemi di implementazione @subentry
@dfn{pipe}
@ifnotinfo
Come visto in precedenza
(@pxref{Note su getline}),
@@ -10786,7 +10885,7 @@ aprire tante @dfn{pipeline} quante ne consente il
sistema operativo su cui
viene eseguito.
@sidebar Inviare @dfn{pipe} alla @command{sh}
-@cindex shell, inviare comandi tramite @dfn{pipe} alla
+@cindex shell @subentry inviare comandi tramite @dfn{pipe} alla
Una maniera particolarmente efficace di usare la ridirezione @`e quella di
preparare righe di comando da passare
@@ -10819,13 +10918,13 @@ righe di comando da passare alla shell.
@node FD speciali
@section File speciali per flussi standard di dati pre-aperti
@cindex standard input
-@cindex input, standard
+@cindex input @subentry standard
@cindex standard output
-@cindex output, standard
-@cindex errore, output
+@cindex output @subentry standard
+@cindex errore @subentry in output
@cindex standard error
@cindex descrittori di file
-@cindex file, descrittori, si veda descrittori di file
+@cindex file @subentry descrittori @seeentry{descrittori di file}
I programmi in esecuzione hanno convenzionalmente tre flussi di input e
output a disposizione, gi@`a aperti per la lettura e la scrittura.
@@ -10843,9 +10942,9 @@ la ragione per cui ci sono due flussi distinti,
standard output e standard error, @`e per poterli ridirigere indipendentemente
l'uno dall'altro.
-@cindex differenze tra @command{awk} e @command{gawk}, messaggi di errore
+@cindex differenze tra @command{awk} e @command{gawk} @subentry messaggi di
errore
@cindex gestione errori
-@cindex errori, gestione degli
+@cindex errori @subentry gestione degli
Nelle tradizionali implementazioni di @command{awk}, il solo modo per
scrivere un messaggio di errore allo
standard error in un programma @command{awk} @`e il seguente:
@@ -10892,15 +10991,12 @@ direttamente il descrittore di file identificato dal
@value{FN}. Questi
@command{gawk} @`e disponibile, e non solo in quelli che aderiscono allo
standard POSIX:
-@cindex estensioni comuni, file speciale @code{/dev/stdin}
-@cindex estensioni comuni, file speciale @code{/dev/stdout}
-@cindex estensioni comuni, file speciale @code{/dev/stderr}
-@c @cindex comuni, estensioni@comma{} file speciale @code{/dev/stdin}
-@c @cindex comuni, estensioni@comma{} file speciale @code{/dev/stdout}
-@c @cindex comuni, estensioni@comma{} file speciale @code{/dev/stderr}
-@cindex nomi di file, flussi standard in @command{gawk}
+@cindex estensioni comuni @subentry file speciale @code{/dev/stdin}
+@cindex estensioni comuni @subentry file speciale @code{/dev/stdout}
+@cindex estensioni comuni @subentry file speciale @code{/dev/stderr}
+@cindex nomi @subentry di file @subentry flussi standard in @command{gawk}
@cindex @code{/dev/@dots{}}, file speciali
-@cindex file, file speciali @code{/dev/@dots{}}
+@cindex file @subentry speciali @subentry @code{/dev/@dots{}}
@cindex @code{/dev/fd/@var{N}}, file speciali (in @command{gawk})
@table @file
@item /dev/stdin
@@ -10920,7 +11016,7 @@ la maniera corretta di scrivere un messaggio di errore
diviene quindi:
print "Ho trovato un errore grave!" > "/dev/stderr"
@end example
-@cindex debug, doppio apice con nomi di file
+@cindex debug @subentry doppio apice con nomi di file
Si noti l'uso di doppi apici per racchiudere il @value{FN}.
Come per ogni altra ridirezione, il valore dev'essere una stringa.
@`E un errore comune omettere i doppi apici, il che conduce a
@@ -10933,7 +11029,7 @@ invocato con l'opzione @option{--traditional}
(@pxref{Opzioni}).
@node File speciali
@section @value{FFNS} speciali in @command{gawk}
-@cindex @command{gawk}, nomi di file in
+@cindex @command{gawk} @subentry nomi di file in
Oltre all'accesso a standard input, standard output e standard error,
@command{gawk} consente di accedere a ogni descrittore di file aperto.
@@ -10975,8 +11071,8 @@ oltre il due, effettivamente chiude il descrittore di
file specificato.
@node Reti speciali
@subsection File speciali per comunicazioni con la rete
-@cindex reti, funzionalit@`a per
-@cindex TCP/IP, funzionalit@`a per
+@cindex reti @subentry funzionalit@`a per
+@cindex TCP/IP @subentry funzionalit@`a per
I programmi @command{gawk}
possono aprire una connessione bidirezionale
@@ -11005,8 +11101,9 @@ Sono qui elencate alcune cose da tener presente usando i
@value{FNS} speciali forniti da @command{gawk}:
@itemize @value{BULLET}
-@cindex modalit@`a compatibile di (@command{gawk}), nomi di file
-@cindex nomi di file, nella modalit@`a compatibile di @command{gawk}
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry nomi di file
+@cindex nomi @subentry di file @subentry nella modalit@`a compatibile di
@command{gawk}
+@cindex modalit@`a POSIX
@item
Il riconoscimento dei @value{FNS} per i tre file standard pre-aperti
@`e disabilitato solo in modalit@`a POSIX.
@@ -11030,12 +11127,12 @@ Se lo si fa, il comportamente risultante @`e
imprevedibile.
@node Chiusura file e @dfn{pipe}
@section Chiudere ridirezioni in input e in output
-@cindex output, file in, si veda file in output
-@cindex input, file in, chiusura
-@cindex output, file in, chiusura
-@cindex @dfn{pipe}, chiusura
-@cindex coprocessi, chiusura
-@cindex @code{getline}, comando, coprocessi@comma{} usare dal
+@cindex output @subentry file in
+@cindex input @subentry chiusura
+@cindex file @subentry in output @subentry chiusura di
+@cindex @dfn{pipe} @subentry chiusura
+@cindex coprocessi @subentry chiusura
+@cindex @code{getline} (comando) @subentry coprocessi, usare da
Se lo stesso @value{FN} o lo stesso comando di shell @`e usato con
@code{getline}
pi@`u di una volta durante l'esecuzione di un programma @command{awk}
@@ -11143,10 +11240,10 @@ programma chiude la @dfn{pipe} dopo ogni riga
dell'output, allora ogni riga
costituisce un messaggio separato.
@end itemize
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{close()}
-@cindex portabilit@`a, funzione @code{close()}
-@cindex funzione @code{close()}, portabilit@`a
-@cindex @code{close()}, funzione, portabilit@`a
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione
@code{close()}
+@cindex portabilit@`a @subentry funzione @code{close()}
+@cindex funzione @subentry @code{close()} @subentry portabilit@`a
+@cindex @code{close()} (funzione) @subentry portabilit@`a
Se si usano file in numero superiore a quelli che il sistema permette
di mantenere aperti,
@command{gawk} tenta di riutilizzare i file aperti disponibili fra
@@ -11161,12 +11258,12 @@ consideri qualcosa del tipo:
@example
@{
- @dots{}
- comando = ("grep " $1 " /qualche/file | un_mio_programma -q " $3)
- while ((comando | getline) > 0) @{
- @var{elabora output di} comando
- @}
- # qui serve close(comando)
+@dots{}
+comando = ("grep " $1 " /qualche/file | un_mio_programma -q " $3)
+while ((comando | getline) > 0) @{
+@var{elabora output di} comando
+@}
+# qui serve close(comando)
@}
@end example
@@ -11201,7 +11298,7 @@ stato aperto con una ridirezione,
e per questo @command{awk} silenziosamente non fa nulla, tranne impostare un
codice di ritorno negativo.
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O),
@dfn{pipe}@comma{} chiusura
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
@subentry @dfn{pipe}, chiusura
Quando si usa l'operatore @samp{|&} per comunicare con un coprocesso,
@`e talora utile essere in grado di chiudere un lato della @dfn{pipe}
bidirezionale, senza chiudere l'altro lato.
@@ -11217,12 +11314,12 @@ rinviata alla
che ne parla pi@`u dettagliatamente e fornisce un esempio.
@sidebar Usare il codice di ritorno di @code{close()}
-@cindex angolo buio, funzione @code{close()}
-@cindex funzione @code{close()}, codice di ritorno
-@cindex @code{close()}, funzione, codice di ritorno
-@cindex codice di ritorno@comma{} funzione @code{close()}
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{close()}
-@cindex Unix @command{awk}, funzione @code{close()} e
+@cindex angolo buio @subentry funzione @subentry @code{close()}
+@cindex funzione @subentry @code{close()} @subentry codice di ritorno
+@cindex @code{close()} (funzione) @subentry codice di ritorno
+@cindex codice di ritorno @subentry funzione @code{close()}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione
@code{close()}
+@cindex Unix @command{awk} @subentry funzione @code{close()} e
In molte versioni di Unix @command{awk}, la funzione @code{close()}
@`e in realt@`a un'istruzione.
@@ -11236,9 +11333,9 @@ comando | getline info
retval = close(comando) # errore di sintassi in parecchi Unix awk
@end example
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex variabile @code{ERRNO}, con funzione @command{close()}
-@cindex @code{ERRNO}, variabile, con funzione @command{close()}
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex variabile @subentry @code{ERRNO} @subentry con funzione
@command{close()}
+@cindex @code{ERRNO} (variabile) @subentry con funzione @command{close()}
@command{gawk} gestisce @code{close()} come una funzione.
Il codice di ritorno @`e @minus{}1 se l'argomento designa un file
che non era mai stato aperto con una ridirezione, o se c'@`e un problema di
@@ -11269,6 +11366,8 @@ Questo valore @`e zero se la chiusura riesce, o
@minus{}1 se non riesce.
@end multitable
@end float
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX
Lo standard POSIX @`e molto generico; dice che @code{close()}
restituisce zero se @`e terminata correttamente, e un valore diverso da zero
nell'altro caso. In generale,
@@ -11350,6 +11449,8 @@ o @code{PROCINFO["/dev/stdout", "NONFATAL"]}.
Per lo standard error, occorre
usare @code{PROCINFO["/dev/stderr", "NONFATAL"]}.
+@cindex @env{GAWK_SOCK_RETRIES} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{GAWK_SOCK_RETRIES}
Se si tenta di aprire un @dfn{socket} TCP/IP (@pxref{Reti TCP/IP}),
@command{gawk} tenta di farlo per un certo numero di volte.
La variabile d'ambiente @env{GAWK_SOCK_RETRIES}
@@ -11492,7 +11593,7 @@ che forniscono i valori usati nelle espressioni.
@node Costanti
@subsection Espressioni costanti
-@cindex costanti, tipi di
+@cindex costanti @subentry tipi di
Il tipo di espressione pi@`u semplice @`e una @dfn{costante}, che ha sempre lo
stesso valore. Ci sono tre tipi di costanti: numeriche, di stringa e di
@@ -11512,8 +11613,8 @@ avere forme diverse, ma sono memorizzate internamente
sempre allo stesso modo.
@node Costanti scalari
@subsubsection Costanti numeriche e stringhe
-@cindex costanti numeriche
-@cindex numeriche, costanti
+@cindex costanti @subentry numeriche
+@cindex numeriche @subentry costanti
Una @dfn{costante numerica} @`e un numero. Questo numero pu@`o essere un
numero intero, una frazione decimale o un numero in notazione scientifica
(esponenziale).@footnote{La rappresentazione interna di tutti i numeri,
@@ -11529,7 +11630,8 @@ valore:
1050e-1
@end example
-@cindex costanti stringa
+@cindex costanti @subentry stringa
+@cindex stringa @subentry costante
Una @dfn{costante stringa} @`e formata da una sequenza di caratteri racchiusi
tra
doppi apici. Per esempio:
@@ -11538,8 +11640,9 @@ doppi apici. Per esempio:
@end example
@noindent
-@cindex differenze tra @command{awk} e @command{gawk}, stringhe
-@cindex stringhe, limitazioni della lunghezza
+@cindex differenze tra @command{awk} e @command{gawk} @subentry stringhe
+@cindex stringa @subentry limitazioni della lunghezza
+@cindex ASCII
rappresenta la stringa il cui contenuto @`e la parola @samp{pappagallo}.
Le stringhe in
@command{gawk} possono essere di qualsiasi lunghezza, e possono contenere
@@ -11585,9 +11688,9 @@ $ @kbd{gawk 'BEGIN @{ print "ciao, }
@print{} gawk: riga com.:1: ^ syntax error
@end example
-@cindex angolo buio, stringhe, continuazione su pi@`u righe
-@cindex stringhe, continuazione su pi@`u righe
-@cindex differenze tra @command{awk} e @command{gawk}, stringhe
+@cindex angolo buio @subentry stringhe @subentry continuazione su pi@`u righe
+@cindex stringa @subentry continuazione su pi@`u righe
+@cindex differenze tra @command{awk} e @command{gawk} @subentry stringhe
Sebbene POSIX non definisca cosa succede usando un carattere
protetto di avanzamento riga, come nell'esempio in linguaggio C
visto sopra, tutte le versioni di @command{awk} consentono di
@@ -11604,6 +11707,7 @@ $ @kbd{gawk 'BEGIN @{ print "ciao, \}
@print{} ciao, mondo
@end example
+@cindex modalit@`a POSIX
In modalit@`a POSIX (@pxref{Opzioni}), @command{gawk} non consente
caratteri protetti di avanzamento riga. Altrimenti, il
comportamento @`e quello descritto sopra.
@@ -11621,10 +11725,10 @@ $ @kbd{nawk 'BEGIN @{ print "ciao, \}
@node Numeri non-decimali
@subsubsection Numeri ottali ed esadecimali
-@cindex ottali, numeri
-@cindex esadecimali, numeri
-@cindex numeri ottali
-@cindex numeri esadecimali
+@cindex ottali @subentry numeri
+@cindex esadecimali @subentry numeri
+@cindex numeri @subentry ottali
+@cindex numeri @subentry esadecimali
In @command{awk}, tutti i numeri sono espressi nel sistema decimale (cio@`e a
base 10).
@@ -11671,8 +11775,8 @@ quando si lavora con dati che non possono essere
rappresentati
convenientemente come caratteri o come numeri regolari, come i dati binari di
vario tipo.
-@cindex @command{gawk}, numeri ottali e
-@cindex @command{gawk}, numeri esadecimali e
+@cindex @command{gawk} @subentry numeri ottali e
+@cindex @command{gawk} @subentry numeri esadecimali e
@command{gawk} permette l'uso di costanti ottali ed esadecimali nel testo di
un programma. Comunque, se numeri non-decimali sono presenti tra i dati in
input, essi non sono trattati in maniera speciale; trattarli in modo speciale
@@ -11701,12 +11805,12 @@ $ @kbd{gawk 'BEGIN @{ print "021 @`e", 021 ; print
018 @}'}
@print{} 18
@end example
-@cindex modalit@`a compatibile di (@command{gawk}), numeri ottali
-@cindex numeri ottali nella modalit@`a compatibile di (@command{gawk})
-@cindex modalit@`a compatibile di (@command{gawk}), numeri esadecimali
-@cindex numeri esadecimali nella modalit@`a compatibile di (@command{gawk})
-@cindex compatibile, modalit@`a (@command{gawk}), numeri ottali
-@cindex compatibile, modalit@`a (@command{gawk}), numeri esadecimali
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry numeri ottali
+@cindex numeri @subentry ottali @subentry nella modalit@`a compatibile di
(@command{gawk})
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry numeri esadecimali
+@cindex numeri @subentry esadecimali @subentry nella modalit@`a compatibile di
(@command{gawk})
+@cindex compatibile @subentry modalit@`a (@command{gawk}) @subentry numeri
ottali
+@cindex compatibile @subentry modalit@`a (@command{gawk}) @subentry numeri
esadecimali
Le costanti ottali ed esadecimali nel codice sorgente sono un'estensione di
@command{gawk}. Se @command{gawk} @`e in modalit@`a compatibile
(@pxref{Opzioni}),
@@ -11730,12 +11834,12 @@ $ @kbd{gawk 'BEGIN @{ printf "0x11 vale <%s>\n", 0x11
@}'}
@node Costanti come espressioni regolari
@subsubsection Costanti fornite tramite espressioni regolari
-@cindex @dfn{regexp}, costanti
-@cindex costanti @dfn{regexp}
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @dfn{regexp} @subentry costanti
+@cindex costanti @subentry @dfn{regexp}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
Una @dfn{costante regexp} @`e la descrizione di un'espressione regolare
delimitata
da barre, come @code{@w{/^inizio e fine$/}}. La maggior parte delle
@@ -11770,7 +11874,7 @@ un'estensione @command{gawk}.
@node Costanti @dfn{regexp} normali
@subsubsection Costanti @dfn{regexp} normali in @command{awk}.
-@cindex angolo buio, costanti @dfn{regexp}
+@cindex angolo buio @subentry costanti @dfn{regexp}
Quand'@`e usata a destra degli operatori @samp{~} o @samp{!~},
una costante @dfn{regexp} rappresenta semplicemente l'espressione regolare che
dev'essere confrontata. Comunque, le costanti @dfn{regexp} (come
@code{/pippo/})
@@ -11808,8 +11912,8 @@ if (/pippo/ ~ $1) print "trovato pippo"
@c @cindex automatic warnings
@c @cindex warnings, automatic
-@cindex @command{gawk}, costanti @dfn{regexp} e
-@cindex costanti @dfn{regexp}, in @command{gawk}
+@cindex @command{gawk} @subentry costanti @dfn{regexp} e
+@cindex costanti @subentry @dfn{regexp} @subentry in @command{gawk}
@noindent
Questo codice ``ovviamente'' intende verificare se @code{$1} contiene
l'espressione regolare @code{/pippo/}. Ma in effetti l'espressione
@@ -11831,8 +11935,8 @@ confronta = /pippo/
assegna zero o uno alla variabile @code{confronta}, a seconda
del contenuto del record in input corrente.
-@cindex differenze tra @command{awk} e @command{gawk}, costanti @dfn{regexp}
-@cindex angolo buio, costanti @dfn{regexp}, come argomenti a funzioni definite
dall'utente
+@cindex differenze tra @command{awk} e @command{gawk} @subentry costanti
@dfn{regexp}
+@cindex angolo buio @subentry costanti @dfn{regexp} @subentry come argomenti a
funzioni definite dall'utente
@cindexgawkfunc{gensub}
@cindexawkfunc{sub}
@cindexawkfunc{gsub}
@@ -11929,7 +12033,7 @@ sarebbe bello poter avere costanti @dfn{regexp} che sono
una @dfn{regexp} utile per effettuare dei confronti,
e non una semplice espressione regolare.
-@cindex valori, @dfn{regexp}
+@cindex valori @subentry @dfn{regexp}
@command{gawk} prevede questa funzionalit@`a. Un'espressione regolare
fortemente tipizzata @`e molto simile a un'espressione regolare normale,
tranne per il fatto di essere preceduta dal simbolo @samp{@@}:
@@ -12000,8 +12104,8 @@ al valore di stringa del testo della @dfn{regexp}
originale.
@node Variabili
@subsection Variabili
-@cindex variabili definite dall'utente
-@cindex definite dall'utente, variabili
+@cindex variabili @subentry definite dall'utente
+@cindex definite dall'utente @subentry @dfn{Si veda} variabili definite
dall'utente
Le @dfn{variabili} consentono di memorizzare valori in un certo punto di un
programma, per usarli pi@`u tardi in un'altra parte del programma. Le
variabili
possono essere gestite interamente all'interno del testo del programma, ma
@@ -12042,8 +12146,8 @@ contenuto dei loro parametri che sono
costituiti da vettori
(@pxref{Funzioni per stringhe}).
-@cindex variabili, predefinite
-@cindex variabili, inizializzazione
+@cindex variabili @subentry predefinite
+@cindex variabili @subentry inizializzazione
Alcune variabili hanno un significato speciale predefinito, come @code{FS}
(il separatore di campo) e @code{NF} (il numero di campi nel record di input
corrente). @xref{Variabili predefinite} per un elenco delle variabili
@@ -12063,8 +12167,8 @@ tradizionali.
@node Opzioni di assegnamento
@subsubsection Assegnare una variabile dalla riga di comando
-@cindex variabili, assegnare da riga di comando
-@cindex riga di comando, variabili@comma{} assegnare da
+@cindex variabili @subentry assegnare da riga di comando
+@cindex riga di comando @subentry variabili @subentry assegnare da
Si pu@`o impostare qualsiasi variabile @command{awk} includendo un
@dfn{assegnamento di variabile} tra gli argomenti sulla riga di comando quando
@@ -12075,7 +12179,8 @@ Tale assegnamento ha la seguente forma:
@var{variabile}=@var{testo}
@end example
-@cindex @option{-v}, opzione
+@cindex @option{-v} (opzione)
+@cindex opzione @subentry @option{-v}
@noindent
Con questo assegnamento, una variabile viene impostata o all'inizio
dell'esecuzione di @command{awk} o tra la lettura di un file in input e il
@@ -12120,7 +12225,7 @@ $ @kbd{awk '@{ print $n @}' n=4 inventory-shipped n=2
mail-list}
@dots{}
@end example
-@cindex angolo buio, argomenti da riga di comando
+@cindex angolo buio @subentry argomenti da riga di comando
Gli argomenti da riga di comando sono resi disponibili dal programma
@command{awk} nel vettore @code{ARGV} per poter essere esaminati esplicitamente
(@pxref{ARGC e ARGV}).
@@ -12165,10 +12270,10 @@ questa @value{SECTION} tratta di quest'importante
sfaccettatura di @command{awk}
@node Stringhe e numeri
@subsubsection Come @command{awk} converte tra stringhe e numeri
-@cindex conversione da stringhe a numeri
-@cindex stringhe, conversione
-@cindex numeri, conversione in stringhe
-@cindex conversione da numeri a stringhe
+@cindex conversione @subentry da stringa a numero
+@cindex stringa @subentry conversione
+@cindex numeri @subentry conversione in stringhe
+@cindex conversione @subentry da numero a stringa
Le stringhe sono convertite in numeri e i numeri sono convertiti in stringhe,
se il contesto del programma @command{awk} lo richiede. Per esempio, se il
valore di @code{pippo} o @code{pluto} nell'espressione @samp{pippo + pluto}
@@ -12189,9 +12294,9 @@ variabili @code{due} e @code{tre} sono convertiti in
stringhe e
concatenati insieme. La stringa risultante @`e riconvertita nel
numero 23, al quale poi viene aggiunto 4.
-@cindex stringa nulla, conversione da tipo numerico a tipo stringa
-@cindex conversione di tipo variabile
-@cindex variabile, conversione di tipo
+@cindex stringa nulla @subentry conversione da tipo numerico a tipo stringa
+@cindex conversione @subentry di tipo di variabile
+@cindex variabili @subentry conversione di tipo
Se, per qualche ragione, si vuole forzare la conversione di un numero in
una stringa, basta concatenare a quel numero la stringa nulla, @code{""}.
Per forzare la conversione di una stringa in un numero, basta aggiungere zero
@@ -12202,7 +12307,7 @@ qualsiasi prefisso numerico della stringa come numero:
Le stringhe che non possono essere interpretate come numeri validi vengono
convertite al valore zero.
-@cindex @code{CONVFMT}, variabile
+@cindex @code{CONVFMT} (variabile)
Il modo esatto in cui i numeri sono convertiti in stringhe @`e controllato
dalla
variabile predefinita di @command{awk} @code{CONVFMT}
(@pxref{Variabili predefinite}). I numeri vengono convertiti usando la
@@ -12218,7 +12323,7 @@ normalmente bastano 17 cifre per esprimere esattamente
il valore di un numero
in virgola mobile.@footnote{Per casi eccezionali possono essere richieste fino
a 752 cifre (!), non sembra che sia il caso di preoccuparsene qui.}
-@cindex angolo buio, variabile @code{CONVFMT}
+@cindex angolo buio @subentry variabile @subentry @code{CONVFMT}
Si possono avere strani risultati se si imposta @code{CONVFMT} a una stringa
che non indica a @code{sprintf()} come formattare i numeri in virgola mobile
in un modo utile. Per esempio, se ci si dimentica la @samp{%} nel formato,
@@ -12239,10 +12344,10 @@ b = a ""
@value{DARKCORNER}
@sidebar @command{awk} prima di POSIX usava @code{OFMT} per la conversione di
stringhe
-@cindex POSIX @command{awk}, variabile @code{OFMT} e
-@cindex @code{OFMT}, variabile
-@cindex portabilit@`a, nuovo @command{awk} vs.@: vecchio @command{awk}
-@cindex @command{awk}, nuovo vs.@: vecchio, variabile @code{OFMT}
+@cindex POSIX @command{awk} @subentry @code{OFMT} (variabile)
+@cindex @code{OFMT} (variabile)
+@cindex portabilit@`a @subentry nuovo @command{awk} vs.@: vecchio @command{awk}
+@cindex @command{awk} @subentry nuovo vs.@: vecchio @subentry variabile
@code{OFMT}
Prima dello standard POSIX, @command{awk} usava il valore di @code{OFMT} per
convertire i numeri in stringhe. @code{OFMT} specifica il formato di output da
usare per la stampa dei numeri con @code{print}. @code{CONVFMT} fu introdotto
@@ -12257,7 +12362,7 @@ per separare la semantica della conversione dalla
semantica della stampa. Sia
@subsubsection Le localizzazioni possono influire sulle conversioni
Il luogo dove si @`e pu@`o avere importanza quando si tratta di convertire
numeri e
-stringhe. La lingua e i caratteri---la @dfn{localizzazione}---possono
+stringhe. La lingua e i caratteri --- la @dfn{localizzazione} --- possono
influire sui formati numerici. In particolare, per i programmi @command{awk},
influiscono sui caratteri separatore decimale e separatore delle migliaia.
La localizzazione @code{"C"}, e la maggior parte delle localizzazioni inglesi,
@@ -12268,7 +12373,7 @@ europee e non inglesi usano la virgola (@samp{,}) come
separatore dei decimali.
Le localizzazioni europee spesso usano o lo spazio o il punto come separatore
delle migliaia, all'occorrenza.
-@cindex angolo buio, carattere di separazione dei decimali nelle localizzazioni
+@cindex angolo buio @subentry carattere di separazione dei decimali nelle
localizzazioni
Lo standard POSIX prevede che @command{awk} usi sempre il punto come separatore
dei decimali nel codice sorgente del programma @command{awk}, e per
gli assegnamenti di variabile da riga di comando (@pxref{Altri argomenti}).
@@ -12299,6 +12404,7 @@ normale, @command{gawk} tratta @samp{4,321} come 4,
mentre nella localizzazione
danese @`e trattato come numero completo comprendente la parte frazionaria,
4.321.
+@cindex modalit@`a POSIX
Alcune delle prime versioni di @command{gawk} si conformavano completamente con
quest'aspetto dello standard. Tuttavia, molti utenti di localizzazioni non
inglesi si lamentavano di questo comportamento, perch@'e i loro dati usavano il
@@ -12355,8 +12461,8 @@ dei valori forniti da costanti e variabili.
@node Operatori aritmetici
@subsection Operatori aritmetici
-@cindex aritmetici, operatori
-@cindex operatori aritmetici
+@cindex aritmetici @subentry operatori
+@cindex operatori @subentry aritmetici
@c @cindex addition
@c @cindex subtraction
@c @cindex multiplication
@@ -12395,8 +12501,8 @@ La lista seguente elenca gli operatori aritmetici in
@command{awk},
in ordine di precedenza, da quella pi@`u alta a quella pi@`u bassa:
@table @code
-@cindex estensioni comuni, operatore @code{**}
-@cindex POSIX @command{awk}, operatori aritmetici e
+@cindex estensioni comuni @subentry operatore @code{**}
+@cindex POSIX @command{awk} @subentry operatori aritmetici
@item @var{x} ^ @var{y}
@itemx @var{x} ** @var{y}
Elevamento a potenza; @var{x} elevato alla potenza @var{y}. @samp{2 ^ 3}
@@ -12412,12 +12518,12 @@ Pi@`u unario; l'espressione @`e convertita in un
numero.
@item @var{x} * @var{y}
Moltiplicazione.
-@cindex risoluzione di problemi, divisione
-@cindex problemi, risoluzione di, divisione
+@cindex risoluzione di problemi @subentry divisione
+@cindex problemi @subentry risoluzione di @subentry divisione
@cindex divisione
@item @var{x} / @var{y}
Divisione; poich@'e tutti i numeri in @command{awk} sono numeri in virgola
-mobile, il risultato @emph{non} @`e arrotondato all'intero---@samp{3 / 4} ha il
+mobile, il risultato @emph{non} @`e arrotondato all'intero --- @samp{3 / 4} ha
il
valore di 0.75. (Un errore comune, specialmente tra i programmatori in C, @`e
quello di dimenticare che @emph{tutti} i numeri in @command{awk} sono in
virgola mobile,
e che la divisione di costanti rappresentate da numeri interi produce un
@@ -12438,8 +12544,8 @@ Il pi@`u e il meno unari hanno la stessa precedenza,
gli operatori di moltiplicazione hanno tutti la stessa precedenza, e
l'addizione e la sottrazione hanno la stessa precedenza.
-@cindex differenze tra @command{awk} e @command{gawk}, operazione di
modulo-troncamento
-@cindex modulo-troncamento, operazione di
+@cindex differenze tra @command{awk} e @command{gawk} @subentry operazione di
modulo-troncamento
+@cindex modulo-troncamento @subentry operazione di
Quando si calcola il resto di @samp{@var{x} % @var{y}},
il quoziente @`e troncato all'intero e
moltiplicato per @var{y}. Questo risultato @`e sottratto da @var{x};
@@ -12461,9 +12567,9 @@ In altre implementazioni di @command{awk} il segno del
resto
pu@`o essere dipendente dalla macchina.
@c FIXME !!! what does posix say?
-@cindex portabilit@`a, operatore @code{**}
-@cindex @code{*} (asterisco), operatore @code{**}
-@cindex asterisco (@code{*}), operatore @code{**}
+@cindex portabilit@`a @subentry operatore @code{**}
+@cindex @code{*} (asterisco) @subentry operatore @code{**}
+@cindex asterisco (@code{*}) @subentry operatore @code{**}
@quotation NOTA
Lo standard POSIX specifica solo l'uso di @samp{^}
per l'elevamento a potenza.
@@ -12478,8 +12584,8 @@ Per garantire la massima portabilit@`a @`e meglio non
usare l'operatore @samp{**
@author Brian Kernighan
@end quotation
-@cindex operatori di stringa
-@cindex stringa, operatori di
+@cindex operatori @subentry di stringa
+@cindex stringa @subentry operatori di
@cindex concatenare
C'@`e una sola operazione di stringa: la concatenazione. Non ha un operatore
specifico per rappresentarla. Piuttosto, la concatenazione @`e effettuata
@@ -12503,8 +12609,8 @@ $ @kbd{awk '@{ print "Campo numero uno:" $1 @}'
mail-list}
@dots{}
@end example
-@cindex risoluzione di problemi, concatenazione di stringhe
-@cindex problemi, risoluzione di, concatenazione di stringhe
+@cindex risoluzione di problemi @subentry concatenazione di stringhe
+@cindex problemi @subentry risoluzione di @subentry concatenazione di stringhe
Poich@'e la concatenazione di stringhe non ha un operatore esplicito, @`e
spesso
necessario assicurarsi che venga effettuata al momento giusto usando le
parentesi per racchiudere gli elementi da concatenare. Per esempio, ci si
@@ -12517,9 +12623,9 @@ file = "file"
print "qualcosa di significativo" > nome file
@end example
-@cindex Brian Kernighan, @command{awk} di
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
@noindent
Questo produce un errore di sintassi in alcune versioni di
@command{awk} per Unix.@footnote{Pu@`o capitare che BWK @command{awk},
@@ -12531,8 +12637,8 @@ ma non ci si dovrebbe fare affidamento.}
print "qualcosa di significativo" > (nome file)
@end example
-@cindex ordine di valutazione, concatenazione
-@cindex valutazione, ordine di, concatenazione
+@cindex ordine di valutazione @subentry concatenazione
+@cindex valutazione @subentry ordine di @subentry concatenazione
@cindex effetti collaterali
Si dovrebbero usare le parentesi attorno alle concatenazioni in tutti i
contesti non comuni, come, per esempio, sul lato destro di @samp{=}.
@@ -12614,11 +12720,11 @@ certi di quel che si ottiene.
@node Operatori di assegnamento
@subsection Espressioni di assegnamento
-@cindex operatori di assegnamento
-@cindex assegnamento, operatori di
-@cindex espressioni di assegnamento
-@cindex @code{=} (uguale), operatore @code{=}
-@cindex uguale (@code{=}), operatore @code{=}
+@cindex operatori @subentry di assegnamento
+@cindex assegnamento @subentry operatori di
+@cindex espressioni @subentry di assegnamento
+@cindex @code{=} (uguale) @subentry operatore @code{=}
+@cindex uguale (@code{=}) @subentry operatore @code{=}
Un @dfn{assegnamento} @`e un'espressione che memorizza un valore (generalmente
diverso da quello che la variabile aveva in precedenza) in una variabile.
Per esempio, si assegni il valore uno alla variabile @code{z}:
@@ -12642,7 +12748,7 @@ messaggio = "questo " cosa " @`e " predicato
@end example
@noindent
-@cindex effetti collaterali, espressioni di assegnamento
+@cindex effetti collaterali @subentry espressioni di assegnamento
Quest'esempio illustra anche la concatenazione di stringhe.
Il segno @samp{=} @`e un @dfn{operatore di assegnamento}. @`E il pi@`u
semplice
fra gli operatori di assegnamento perch@'e il valore dell'operando di destra
@@ -12656,8 +12762,8 @@ un @dfn{effetto collaterale}.
@cindex @dfn{lvalue/rvalue}
@cindex @dfn{rvalue/lvalue}
-@cindex assegnamento, operatori di, @dfn{lvalue/rvalue}
-@cindex operatori di assegnamento
+@cindex assegnamento @subentry operatori di @subentry @dfn{lvalue/rvalue}
+@cindex operatori @subentry di assegnamento
L'operando di sinistra non dev'essere necessariamente una variabile
(@pxref{Variabili}); pu@`o essere anche un campo
(@pxref{Cambiare i campi}) o
@@ -12674,7 +12780,7 @@ produce un nuovo valore che l'assegnamento memorizza
nella variabile, nel campo
o nell'elemento di vettore specificati. Tali valori sono chiamati
@dfn{rvalue}.
-@cindex variabili, tipi di
+@cindex variabili @subentry tipi di
@`E importante notare che le variabili @emph{non} hanno dei tipi permanenti.
Il tipo di una variabile @`e semplicemente quello di qualsiasi valore le sia
stato
assegnato per ultimo. Nel seguente frammento di programma, la variabile
@@ -12733,8 +12839,8 @@ uno, e poi verificare se @code{x} @`e uguale a uno.
Per@`o questo stile rende i
programmi difficili da leggere; una tale nidificazione di assegnamenti dovrebbe
essere evitata, eccetto forse in un programma usa-e-getta.
-@cindex @code{+} (pi@`u), operatore @code{+=}
-@cindex pi@`u (@code{+}), operatore @code{+=}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+=}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+=}
Accanto a @samp{=}, ci sono diversi altri operatori di assegnamento che
eseguono calcoli col vecchio valore di una variabile. Per esempio,
l'operatore @samp{+=} calcola un nuovo valore aggiungendo il valore sul lato
@@ -12777,8 +12883,8 @@ BEGIN @{
@end group
@end example
-@cindex operatori di assegnamento, ordine di valutazione
-@cindex assegnamento, operatori di, ordine di valutazione
+@cindex operatori @subentry di assegnamento @subentry ordine di valutazione
+@cindex assegnamento @subentry operatori di @subentry ordine di valutazione
@noindent
@`E praticamente certo che gli indici di @code{pluto} siano differenti,
perch@'e
@code{rand()} restituisce valori differenti ogni volta che viene chiamata.
@@ -12816,18 +12922,18 @@ La @ref{table-assign-ops} elenca gli operatori di
assegnamento aritmetici. In
ogni caso, l'operando di destra @`e un'espressione il cui valore @`e
convertito in
un numero.
-@cindex @code{-} (meno), operatore @code{-=}
-@cindex meno (@code{-}), operatore @code{-=}
-@cindex @code{*} (asterisco), operatore @code{*=}
-@cindex asterisco (@code{*}), operatore @code{*=}
-@cindex @code{/} (barra), operatore @code{/=}
-@cindex barra (@code{/}), operatore @code{/=}
-@cindex @code{%} (percento), operatore @code{%=}
-@cindex percento (@code{%}), operatore @code{%=}
-@cindex @code{^} (circonflesso), operatore @code{^=}
-@cindex circonflesso (@code{^}), operatore @code{^=}
-@cindex @code{*} (asterisco), operatore @code{**=}
-@cindex asterisco (@code{*}), operatore @code{**=}
+@cindex @code{-} (meno) @subentry operatore @code{-=}
+@cindex meno (@code{-}) @subentry operatore @code{-=}
+@cindex @code{*} (asterisco) @subentry operatore @code{*=}
+@cindex asterisco (@code{*}) @subentry operatore @code{*=}
+@cindex @code{/} (barra) @subentry operatore @code{/=}
+@cindex barra (@code{/}) @subentry operatore @code{/=}
+@cindex @code{%} (percento) @subentry operatore @code{%=}
+@cindex percento (@code{%}) @subentry operatore @code{%=}
+@cindex @code{^} (circonflesso) @subentry operatore @code{^=}
+@cindex circonflesso (@code{^}) @subentry operatore @code{^=}
+@cindex @code{*} (asterisco) @subentry operatore @code{**=}
+@cindex asterisco (@code{*}) @subentry operatore @code{**=}
@float Tabella,table-assign-ops
@caption{Operatori di assegnamento aritmetici}
@multitable @columnfractions .30 .70
@@ -12837,35 +12943,34 @@ un numero.
@item @var{lvalue} @code{*=} @var{coefficiente} @tab Moltiplica il valore di
@var{lvalue} per @var{coefficiente}.
@item @var{lvalue} @code{/=} @var{divisore} @tab Divide il valore di
@var{lvalue} per @var{divisore}.
@item @var{lvalue} @code{%=} @var{modulo} @tab Imposta @var{lvalue} al resto
della sua divisione per @var{modulo}.
-@cindex estensioni comuni, operatore @code{**=}
-@cindex estensioni comuni@comma{} operatore @code{**=}
-@cindex @command{awk}, linguaggio, versione POSIX
+@cindex estensioni comuni @subentry operatore @code{**=}
+@cindex estensioni comuni @subentry operatore @code{**=}
+@cindex @command{awk} @subentry linguaggio @subentry versione POSIX
@cindex POSIX @command{awk}
@item @var{lvalue} @code{^=} @var{esponente} @tab Eleva @var{lvalue} alla
potenza @var{esponente}.
@item @var{lvalue} @code{**=} @var{esponente} @tab Eleva @var{lvalue} alla
potenza @var{esponente}. @value{COMMONEXT}
@end multitable
@end float
-@cindex POSIX @command{awk}, operatore @code{**=} e
-@cindex portabilit@`a, operatore @code{**=}
+@cindex POSIX @command{awk} @subentry @code{**=} (operatore)
+@cindex portabilit@`a @subentry operatore @code{**=}
@quotation NOTA
Soltanto l'operatore @samp{^=} @`e definito da POSIX.
Per avere la massima portabilit@`a, non usare l'operatore @samp{**=}.
@end quotation
@sidebar Ambiguit@`a sintattiche tra @samp{/=} e le espressioni regolari
-@cindex angolo buio, costanti @dfn{regexp}, operatore @code{/=} e
-@cindex @code{/} (barra), operatore @code{/=}, vs. costante @dfn{regexp}
@code{/=@dots{}/}
-@cindex barra (@code{/}), operatore @code{/=}, vs. costante @dfn{regexp}
@code{/=@dots{}/}
-@cindex @dfn{regexp}, costanti, @code{/=@dots{}/}, operatore @code{/=} e
+@cindex angolo buio @subentry costanti @dfn{regexp} @subentry operatore
@code{/=} e
+@cindex @code{/} (barra) @subentry operatore @code{/=} @subentry vs. costante
@dfn{regexp} @code{/=@dots{}/}
+@cindex barra (@code{/}) @subentry operatore @code{/=} @subentry vs. costante
@dfn{regexp} @code{/=@dots{}/}
+@cindex @dfn{regexp} @subentry costanti @subentry @code{/=@dots{}/}, operatore
@code{/=} e
@c derived from email from "Nelson H. F. Beebe" <address@hidden>
@c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
-@cindex angolo buio, operatore @code{/=} vs. costante @dfn{regexp}
@code{/=@dots{}/}
+@cindex angolo buio @subentry operatore @code{/=} vs. costante @dfn{regexp}
@code{/=@dots{}/}
@cindex ambiguit@`a sintattica: operatore @code{/=} vs. costante @dfn{regexp}
@code{/=@dots{}/}
-@cindex sintattica, ambiguit@`a: operatore @code{/=} vs. costante @dfn{regexp}
@code{/=@dots{}/}
-@cindex @code{/=}, operatore, vs. costante @dfn{regexp} @code{/=@dots{}/}
+@cindex sintattica @subentry ambiguit@`a: operatore @code{/=} vs. costante
@dfn{regexp} @code{/=@dots{}/}
C'@`e un'ambiguit@`a sintattica tra l'operatore di assegnamento @code{/=}
e le costanti @dfn{regexp} il cui primo carattere sia @samp{=}.
@value{DARKCORNER}
@@ -12894,8 +12999,8 @@ e @command{mawk}.
@node Operatori di incremento
@subsection Operatori di incremento e di decremento
-@cindex incremento, operatori di
-@cindex operatori di decremento/incremento
+@cindex incremento @subentry operatori di
+@cindex operatori @subentry di decremento/incremento
Gli @dfn{operatori di incremento} e @dfn{decremento} incrementano o riducono il
valore di una variabile di uno. Un operatore di assegnamento pu@`o fare la
stessa cosa, per cui gli operatori di incremento non aggiungono funzionalit@`a
@@ -12903,9 +13008,9 @@ al inguaggio @command{awk}; in ogni caso, sono delle
convenienti abbreviazioni
per operazioni molto comuni.
@cindex effetti collaterali
-@cindex @code{+} (pi@`u), operatore @code{++}
-@cindex pi@`u (@code{+}), operatore @code{++}
-@cindex effetti collaterali, operatori di decremento/incremento
+@cindex @code{+} (pi@`u) @subentry operatore @code{++}
+@cindex pi@`u (@code{+}) @subentry operatore @code{++}
+@cindex effetti collaterali @subentry operatori di decremento/incremento
L'operatore per aggiungere uno @`e @samp{++}. Pu@`o essere usato per
incrementare
una variabile prima o dopo aver stabilito il suo valore. Per
@dfn{preincrementare}
una variabile @code{v}, si scrive @samp{++v}. Questo aggiunge uno al valore di
@@ -12936,15 +13041,15 @@ fare con numeri relativamente piccoli (inferiori a
@end ifnotinfo
@end ifnottex
-@cindex @code{$} (dollaro), incrementare campi e vettori
-@cindex dollaro (@code{$}), incrementare campi e vettori
+@cindex @code{$} (dollaro) @subentry incrementare campi e vettori
+@cindex dollaro (@code{$}) @subentry incrementare campi e vettori
I campi di un record e gli elementi di un vettore vengono incrementati
proprio come le
variabili. (Si deve usare @samp{$(i++)} quando si deve fare un riferimento a
un campo e incrementare una variabile allo stesso tempo. Le parentesi sono
necessarie a causa della precedenza dell'operatore di riferimento @samp{$}.)
-@cindex decremento, operatori di
+@cindex decremento @subentry operatori di
L'operatore di decremento @samp{--} funziona proprio come @samp{++}, solo che
sottrae uno anzich@'e aggiungerlo. Come @samp{++}, si pu@`o usare prima di
@dfn{lvalue}
@@ -12953,8 +13058,8 @@ Quel che segue @`e un sommario delle espressioni di
incremento e di
decremento:
@table @code
-@cindex @code{+} (pi@`u), operatore @code{++}
-@cindex pi@`u (@code{+}), operatore @code{++}
+@cindex @code{+} (pi@`u) @subentry operatore @code{++}
+@cindex pi@`u (@code{+}) @subentry operatore @code{++}
@item ++@var{lvalue}
Incrementa @var{lvalue}, restituendo il nuovo valore come
valore dell'espressione.
@@ -12963,8 +13068,8 @@ valore dell'espressione.
Incrementa @var{lvalue}, restituendo il @emph{vecchio} valore di @var{lvalue}
come valore dell'espressione.
-@cindex @code{-} (meno), operatore @code{--}
-@cindex meno (@code{-}), operatore @code{--}
+@cindex @code{-} (meno) @subentry operatore @code{--}
+@cindex meno (@code{-}) @subentry operatore @code{--}
@item --@var{lvalue}
Decrementa @var{lvalue}, restituendo il nuovo valore come
valore dell'espressione.
@@ -12980,9 +13085,9 @@ come valore dell'espressione.
@sidebar Ordine di valutazione degli operatori
@cindex precedenza
-@cindex operatori, precedenza degli
-@cindex portabilit@`a, operatori
-@cindex valutazione, ordine di
+@cindex operatori @subentry precedenza degli
+@cindex portabilit@`a @subentry operatori
+@cindex valutazione @subentry ordine di
@cindex Marx, Groucho
@quotation
@i{Dottore, quando faccio cos@`{@dotless{i}} mi fa male!@*
@@ -13046,12 +13151,12 @@ e come questi valori sono confrontati.
@node Valori di verit@`a
@subsection Vero e falso in @command{awk}
-@cindex valori di verit@`a
-@cindex logico, valore, vero/falso
-@cindex falso, valore logico (zero o stringa nulla)
-@cindex vero, valore logico (diverso da zero e da stringa nulla)
+@cindex valori @subentry di verit@`a
+@cindex logico @subentry valore @subentry vero/falso
+@cindex falso @subentry valore logico (zero o stringa nulla)
+@cindex vero @subentry valore logico (diverso da zero e da stringa nulla)
-@cindex nulle, stringhe
+@cindex nulle @subentry stringhe
Molti linguaggi di programmazione hanno una particolare rappresentazione per i
concetti di ``vero'' e ``falso.'' Questi linguaggi usano normalmente le
costanti speciali @code{true} e @code{false}, o forse i loro equivalenti
@@ -13074,7 +13179,7 @@ BEGIN @{
@}
@end example
-@cindex angolo buio, @code{"0"} @`e effettivamente vero
+@cindex angolo buio @subentry @code{"0"} @`e effettivamente vero
C'@`e una conseguenza sorprendente della regola ``non zero o non nullo'':
la costante di stringa @code{"0"} sta effettivamente per vero, perch@'e
@`e non nulla.
@@ -13090,14 +13195,14 @@ la costante di stringa @code{"0"} sta effettivamente
per vero, perch@'e
@c The Restaurant at the End of the Universe. But I'm going to
@c leave it alone.
-@cindex confronto, espressioni di
-@cindex espressioni di confronto
-@cindex espressioni, ricerca di corrispondenze, si veda espressioni di
confronto
-@cindex individuazione, espressioni di, si veda espressioni di confronto
-@cindex relazionali, operatori, si veda espressioni di confronto
-@cindex operatori relazionali, si veda espressioni di confronto
-@cindex variabile, tipi di
-@cindex variabili, tipi di, espressioni di confronto e
+@cindex confronto @subentry espressioni di
+@cindex espressioni @subentry di confronto
+@cindex espressioni @subentry ricerca di corrispondenze @seeentry{espressioni
di confronto}
+@cindex individuare @subentry tramite espressioni @seeentry{espressioni di
confronto}
+@cindex relazionali @subentry operatori @seeentry{espressioni di confronto}
+@cindex operatori @subentry relazionali @seeentry{espressioni di confronto}
+@cindex variabili @subentry tipi di
+@cindex variabili @subentry tipi di @subentry espressioni di confronto e
Diversamente che in altri linguaggi di programmazione, le variabili di
@command{awk} non hanno un tipo fisso. Possono essere sia un numero che una
stringa, a seconda del valore loro assegnato.
@@ -13202,9 +13307,9 @@ $ @kbd{echo 37 | awk '@{ printf("%s %s < 42\n", $1,}
Queste sono le regole seguite per determinare quando @command{awk}
tratta dei dati in input come numeri, e quando li considera stringhe.
-@cindex numeriche, stringhe
-@cindex stringhe, numeriche
-@cindex POSIX @command{awk}, stringhe numeriche e
+@cindex numeriche @subentry stringhe
+@cindex stringa @subentry numerica
+@cindex POSIX @command{awk} @subentry stringhe numeriche
Lo standard POSIX usa il concetto di @dfn{stringa numerica}, per dei dati
in input che appaiono essere numerici. Il @samp{37} nell'esempio precedente
@`e una stringa numerica. Quindi, qual @`e il tipo di una stringa numerica?
@@ -13361,12 +13466,12 @@ STRNUM | string numeric
numeric
@end docbook
-L'idea di base @`e che l'input dell'utente che appare come numerico---e
-@emph{solo} l'input dell'utente---dovrebbe essere trattato come numerico, anche
+L'idea di base @`e che l'input dell'utente che appare come numerico --- e
+@emph{solo} l'input dell'utente --- dovrebbe essere trattato come numerico,
anche
se in realt@`a @`e un insieme di caratteri e quindi anche una stringa.
Cos@`{@dotless{i}}, ad esempio, la costante di stringa @w{@code{" +3.14"}},
quando appare nel codice sorgente di un programma,
-@`e una stringa---anche se sembra numerica---e non
+@`e una stringa --- anche se sembra numerica --- e non
viene @emph{mai} trattato come numero
ai fini di un confronto.
@@ -13417,29 +13522,30 @@ $ @kbd{echo salve 37 | gawk '@{ print typeof($1),
typeof($2) @}'}
@node Operatori di confronto
@subsubsection Operatori di confronto
+@cindex operatori @subentry di confronto
Le @dfn{espressioni di confronto} confrontano stringhe o numeri per metterli in
relazione tra di loro, come ad esempio nella relazione di uguaglianza. Sono
scritte usando @dfn{operatori di relazione}, che sono un superinsieme di quelli
in C. Sono descritti nella @ref{table-relational-ops}.
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<}
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<=}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>=}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>}
-@cindex @code{=} (uguale), operatore @code{==}
-@cindex uguale (@code{=}), operatore @code{==}
-@cindex @code{!} (punto esclamativo), operatore @code{!=}
-@cindex punto esclamativo (@code{!}), operatore @code{!=}
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
-@cindex @code{in}, operatore
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore
@code{<}
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<=}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore
@code{<=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>=}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore
@code{>=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore
@code{>}
+@cindex @code{=} (uguale) @subentry operatore @code{==}
+@cindex uguale (@code{=}) @subentry operatore @code{==}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!=}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!=}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
+@cindex @code{in} (operatore)
@float Tabella,table-relational-ops
@caption{Operatori di relazione}
@multitable @columnfractions .23 .77
@@ -13467,8 +13573,8 @@ e cos@`{@dotless{i}} via. Quindi, @code{"10"} @`e
minore di @code{"9"}. Se vi
stringhe di cui una @`e il prefisso dell'altra, la stringa pi@`u corta @`e
minore di
quella pi@`u lunga. Cos@`{@dotless{i}}, @code{"abc"} @`e minore di
@code{"abcd"}.
-@cindex risoluzione di problemi, operatore @code{==}
-@cindex problemi, risoluzione di, operatore @code{==}
+@cindex risoluzione di problemi @subentry operatore @code{==}
+@cindex problemi @subentry risoluzione di @subentry operatore @code{==}
@`E molto facile sbagliarsi scrivendo l'operatore @samp{==} e
omettendo uno dei due caratteri @samp{=}. Il risultato @`e sempre un codice
@command{awk} valido, ma il programma non fa quel che si voleva:
@@ -13520,12 +13626,12 @@ $ @kbd{echo 1e2 3 | awk '@{ print ($1 < $2) ? "vero"
: "falso" @}'}
@print{} falso
@end example
-@cindex espressioni di confronto, stringa vs.@: @dfn{regexp}
+@cindex espressioni @subentry di confronto @subentry stringa vs.@: @dfn{regexp}
@c @cindex string comparison vs.@: regexp comparison
@c @cindex regexp comparison vs.@: string comparison
@noindent
il risultato @`e @samp{falso} perch@'e sia @code{$1} che @code{$2}
-sono immessi dall'utente. Sono stringhe numeriche---quindi hanno entrambe
+sono immessi dall'utente. Sono stringhe numeriche --- quindi hanno entrambe
l'attributo @dfn{strnum}, che richiede un confronto di tipo numerico.
Lo scopo delle regole di confronto e dell'uso di stringhe numeriche @`e quello
di cercare di produrre il comportamento "meno inaspettato possibile",
@@ -13550,19 +13656,19 @@ x ~ /att/
ha il valore uno se @code{x} contiene @samp{att}, come
@code{"Oh, che matto che sono!"}.
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
L'operando di destra degli operatori @samp{~} e @samp{!~} pu@`o essere sia una
costante @dfn{regexp} (@code{/}@dots{}@code{/}) che un'espressione ordinaria.
In quest'ultimo caso, il valore dell'espressione come stringa @`e usato come
una
@dfn{regexp} dinamica (@pxref{Uso di @dfn{regexp}}; e
@pxref{Espressioni regolari calcolate}).
-@cindex @command{awk}, costanti @dfn{regexp} e
-@cindex costanti @dfn{regexp}
-@cindex @dfn{regexp}, costanti
+@cindex @command{awk} @subentry costanti @dfn{regexp} e
+@cindex costanti @subentry @dfn{regexp}
+@cindex @dfn{regexp} @subentry costanti
Un'espressione regolare costante tra due barre @`e di per s@'e anche
un'espressione. @code{/@var{regexp}/} @`e un'abbreviazione per la seguente
espressione di confronto:
@@ -13589,6 +13695,7 @@ diverso dal risultato ottenuto quando si esegue un
confronto rigorosamente
dovrebbe funzionare come se le stringhe fossero confrontate usando la
funzione @code{strcoll()} di C.}
+@cindex modalit@`a POSIX
Poich@'e questo comportamento differisce sensibilmente dalla pratica corrente,
@command{gawk} lo implementava solo quando eseguito in modalit@`a POSIX
(@pxref{Opzioni}).
@@ -13623,6 +13730,7 @@ a <= b && a >= b
@end example
@end quotation
+@cindex modalit@`a POSIX
A partire dalla @value{PVERSION} 4.2, @command{gawk} continua a usare
l'ordine di collazione locale per @code{<}, @code{<=}, @code{>}
e @code{>=} solo se eseguito nella modalit@`a POSIX.
@@ -13634,15 +13742,15 @@ and http://austingroupbugs.net/view.php?id=1070.
@node Operatori booleani
@subsection Espressioni booleane
-@cindex @dfn{and}, operatore logico-booleano
-@cindex @dfn{or}, operatore logico-booleano
-@cindex @dfn{not}, operatore logico-booleano
-@cindex espressioni booleane
-@cindex booleane, espressioni
-@cindex operatori booleani, si veda espressioni booleane
-@cindex booleani, operatori, si veda espressioni booleane
-@cindex logici, operatori, si veda espressioni booleane
-@cindex operatori logici, si veda espressioni booleane
+@cindex @dfn{and} (operatore logico-booleano)
+@cindex @dfn{or} (operatore logico-booleano)
+@cindex @dfn{not} (operatore logico-booleano)
+@cindex espressioni @subentry booleane
+@cindex booleane @subentry espressioni
+@cindex operatori @subentry booleani @seeentry{espressioni booleane}
+@cindex booleani @subentry operatori @seeentry{espressioni booleane}
+@cindex logico @subentry operatore @seeentry{ espressioni booleane}
+@cindex operatori @subentry logici @seeentry{espressioni booleane}
Un'@dfn{espressione booleana} @`e una combinazione di espressioni di confronto
o
espressioni di ricerca, che usa gli operatori booleani "or"
@@ -13674,7 +13782,7 @@ sia @samp{edu} che @samp{li}:
if ($0 ~ /edu/ && $0 ~ /li/) print
@end example
-@cindex effetti collaterali, operatori booleani
+@cindex effetti collaterali @subentry operatori booleani
La sottoespressione @var{booleano2} viene valutata solo se @var{booleano1}
@`e vero. Questo pu@`o comportare una differenza laddove @var{booleano2}
contenga
espressioni che hanno effetti collaterali. Nel caso di @samp{$0 ~ /pippo/ &&
@@ -13713,12 +13821,12 @@ BEGIN @{ if (! ("HOME" in ENVIRON))
@ref{Visitare elementi}.)
@end table
-@cindex cortocircuito, operatori
-@cindex operatori di cortocircuito
-@cindex @code{&} (e commerciale), operatore @code{&&}
-@cindex e commerciale (@code{&}), operatore @code{&&}
-@cindex @code{|} (barra verticale), operatore @code{||}
-@cindex barra verticale (@code{|}), operatore @code{||}
+@cindex cortocircuito @subentry operatori
+@cindex operatori @subentry di cortocircuito
+@cindex @code{&} (e commerciale) @subentry operatore @code{&&}
+@cindex e commerciale (@code{&}) @subentry operatore @code{&&}
+@cindex @code{|} (barra verticale) @subentry operatore @code{||}
+@cindex barra verticale (@code{|}) @subentry operatore @code{||}
Gli operatori @samp{&&} e @samp{||} sono chiamati operatori di
@dfn{cortocircuito} per il modo in cui funzionano. La valutazione dell'intera
espressione @`e "cortocircuitata" se il risultato pu@`o gi@`a essere
determinato
@@ -13730,11 +13838,11 @@ semplicemente mettendo un ritorno a capo dopo di
esse. Per@`o non si pu@`o mett
un ritorno a capo @emph{prima} di questi operatori senza usare la
continuazione tramite la barra inversa (@pxref{Istruzioni/Righe}).
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
@cindex ritorno a capo
-@cindex variabili di tipo indicatore [@dfn{flag}]
-@cindex @dfn{flag} [indicatore], variabili
+@cindex variabili @subentry di tipo indicatore (@dfn{flag})
+@cindex @dfn{flag} (indicatore), variabili di tipo
Il valore reale di un'espressione che usa l'operatore @samp{!} @`e uno
o zero, a seconda del valore di verit@`a dell'espressione a cui
@`e applicato.
@@ -13775,7 +13883,7 @@ if (! @var{qualche condizione} || @var{qualche altra
condizione}) @{
@}
@end example
-@cindex @code{next}, istruzione
+@cindex @code{next} (istruzione)
@quotation NOTA
L'istruzione @code{next} viene trattata in
@ref{Istruzione next}.
@@ -13788,9 +13896,9 @@ Il motivo @`e quello di evitare di stampare le righe
delimitatrici
@node Espressioni condizionali
@subsection Espressioni condizionali
-@cindex condizionali, espressioni
-@cindex espressioni condizionali
-@cindex espressioni, selezionare
+@cindex condizionali @subentry espressioni
+@cindex espressioni @subentry condizionali
+@cindex espressioni @subentry selezionare
Un'@dfn{espressione condizionale} @`e un tipo particolare di espressione che ha
tre operandi. Consente di usare il primo valore dell'espressione per
@@ -13814,7 +13922,7 @@ Per esempio, la seguente espressione produce il valore
assoluto di @code{x}:
x >= 0 ? x : -x
@end example
-@cindex effetti collaterali, espressioni condizionali
+@cindex effetti collaterali @subentry espressioni condizionali
Ogni volta che viene calcolata un'espressione condizionale, solo una delle
espressioni @var{espr-se-vero} e @var{espr-se-falso} viene usata; l'altra
@`e ignorata. Questo @`e importante quando le espressioni hanno effetti
@@ -13838,9 +13946,9 @@ ignorata.
@end ifnottex
per maggiori informazioni sui vettori.
-@cindex differenze tra @command{awk} e @command{gawk}, continuazione di riga
-@cindex continuazione di riga, @command{gawk}
-@cindex @command{gawk}, continuazione di riga in
+@cindex differenze tra @command{awk} e @command{gawk} @subentry continuazione
di riga
+@cindex continuazione di riga @subentry @command{gawk}
+@cindex @command{gawk} @subentry continuazione di riga in
Come estensione minore di @command{gawk},
un'istruzione che usa @samp{?:} si pu@`o continuare mettendo
semplicemente un ritorno a capo dopo i due caratteri.
@@ -13852,14 +13960,14 @@ Se viene specificata l'opzione @option{--posix}
@node Chiamate di funzione
@section Chiamate di funzione
-@cindex chiamata di funzione
+@cindex chiamare @subentry funzione
Una @dfn{funzione} @`e un nome per richiedere un particolare calcolo.
Il nome permette di richiamare
la funzione da qualsiasi punto del programma.
Per esempio, la funzione @code{sqrt()} calcola la radice quadrata di un numero.
-@cindex funzioni predefinite
+@cindex funzioni @subentry predefinite
Un certo numero di funzioni sono @dfn{predefinite}, ossia sono
disponibili in ogni programma @command{awk}. La funzione @code{sqrt()} @`e una
di queste. @xref{Funzioni predefinite} per un elenco di funzioni
@@ -13870,7 +13978,7 @@ per istruzioni su come farlo.
Infine, @command{gawk} permette di scrivere funzioni in C o in C++ che possono
essere chiamate dal proprio programma (@pxref{Estensioni dinamiche}).
-@cindex argomenti, nelle chiamate di funzione
+@cindex argomenti @subentry nelle chiamate di funzione
Una funzione viene utilizzata invocandola tramite un'espressione di
@dfn{chiamata di funzione}, che consiste nel nome della funzione seguito
immediatamente da una lista di @dfn{argomenti} tra parentesi. Gli argomenti
@@ -13885,8 +13993,8 @@ atan2(y, x) @ii{due argomenti}
rand() @ii{nessun argomento}
@end example
-@cindex risoluzione di problemi, sintassi della chiamata di funzione
-@cindex problemi, risoluzione di, sintassi della chiamata di funzione
+@cindex risoluzione di problemi @subentry sintassi della chiamata di funzione
+@cindex problemi @subentry risoluzione di @subentry sintassi della chiamata di
funzione
@quotation ATTENZIONE
Non ci dev'essere nessuno spazio tra il nome della funzione e la parentesi
aperta! Un nome di funzione definita dall'utente pu@`o essere scambiata per
@@ -13925,7 +14033,7 @@ del programma.
Si rimanda la trattazione di questa funzionalit@`a
a un secondo momento; si veda @ref{Chiamate indirette}.
-@cindex effetti collaterali, chiamate di funzione
+@cindex effetti collaterali @subentry chiamate di funzione
Come ogni altra espressione, la chiamata di funzione ha un valore, chiamato
spesso @dfn{valore di ritorno}, che @`e calcolato dalla funzione
in base agli argomenti dati. In quest'esempio, il codice di ritorno
@@ -13975,7 +14083,7 @@ $ @kbd{awk -f matchit.awk}
@node Precedenza
@section Precedenza degli operatori (Come si nidificano gli operatori)
@cindex precedenza
-@cindex operatori, precedenza
+@cindex operatori @subentry precedenza
La @dfn{precedenza degli operatori} determina come gli operatori vengono
raggruppati quando diversi operatori appaiono uno vicino all'altro in
@@ -14025,48 +14133,48 @@ dalla pi@`u alta alla pi@`u bassa:
@item @code{(}@dots{}@code{)}
Raggruppamento.
-@cindex @code{$} (dollaro), operatore di campo @code{$}
-@cindex dollaro (@code{$}), operatore di campo @code{$}
+@cindex @code{$} (dollaro) @subentry operatore di campo @code{$}
+@cindex dollaro (@code{$}) @subentry operatore di campo @code{$}
@item @code{$}
Riferimento a un campo.
-@cindex @code{+} (pi@`u), operatore @code{++}
-@cindex pi@`u (@code{+}), operatore @code{++}
-@cindex @code{-} (meno), operatore @code{--}
-@cindex meno (@code{-}), operatore @code{--}
+@cindex @code{+} (pi@`u) @subentry operatore @code{++}
+@cindex pi@`u (@code{+}) @subentry operatore @code{++}
+@cindex @code{-} (meno) @subentry operatore @code{--}
+@cindex meno (@code{-}) @subentry operatore @code{--}
@item @code{++ --}
Incremento, decremento.
-@cindex @code{^} (circonflesso), operatore @code{^}
-@cindex circonflesso (@code{^}), operatore @code{^}
-@cindex @code{*} (asterisco), operatore @code{**}
-@cindex asterisco (@code{*}), operatore @code{**}
+@cindex @code{^} (circonflesso) @subentry operatore @code{^}
+@cindex circonflesso (@code{^}) @subentry operatore @code{^}
+@cindex @code{*} (asterisco) @subentry operatore @code{**}
+@cindex asterisco (@code{*}) @subentry operatore @code{**}
@item @code{^ **}
Elevamento a potenza. Questi operatori sono raggruppati da destra verso
sinistra.
-@cindex @code{+} (pi@`u), operatore @code{+}
-@cindex pi@`u (@code{+}), operatore @code{+}
-@cindex @code{-} (meno), operatore @code{-}
-@cindex meno (@code{-}), operatore @code{-}
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+}
+@cindex @code{-} (meno) @subentry operatore @code{-}
+@cindex meno (@code{-}) @subentry operatore @code{-}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
@item @code{+ - !}
Pi@`u, meno, ``not'' logico, unari.
-@cindex @code{*} (asterisco), operatore @code{*}, come operatore di
moltiplicazione
-@cindex asterisco (@code{*}), operatore @code{*}, come operatore di
moltiplicazione
-@cindex @code{/} (barra), operatore @code{/}
-@cindex barra (@code{/}), operatore @code{/}
-@cindex @code{%} (percento), operatore @code{%}
-@cindex percento (@code{%}), operatore @code{%}
+@cindex @code{*} (asterisco) @subentry operatore @code{*} @subentry come
operatore di moltiplicazione
+@cindex asterisco (@code{*}) @subentry operatore @code{*} @subentry come
operatore di moltiplicazione
+@cindex @code{/} (barra) @subentry operatore @code{/}
+@cindex barra (@code{/}) @subentry operatore @code{/}
+@cindex @code{%} (percento) @subentry operatore @code{%}
+@cindex percento (@code{%}) @subentry operatore @code{%}
@item @code{* / %}
Moltiplicazione, divisione, resto di una divisione.
-@cindex @code{+} (pi@`u), operatore @code{+}
-@cindex pi@`u (@code{+}), operatore @code{+}
-@cindex @code{-} (meno), operatore @code{-}
-@cindex meno (@code{-}), operatore @code{-}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+}
+@cindex @code{-} (meno) @subentry operatore @code{-}
+@cindex meno (@code{-}) @subentry operatore @code{-}
@item @code{+ -}
Addizione, sottrazione.
@@ -14075,27 +14183,27 @@ Non c'@`e un simbolo speciale per la concatenazione.
Gli operandi sono semplicemente scritti uno accanto all'altro.
(@pxref{Concatenazione}).
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<}
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<=}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>=}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>}
-@cindex @code{=} (uguale), operatore @code{==}
-@cindex uguale (@code{=}), operatore @code{==}
-@cindex @code{!} (punto esclamativo), operatore @code{!=}
-@cindex punto esclamativo (@code{!}), operatore @code{!=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>>} (I/O)
-@cindex parentesi acuta destra (@code{>}), operatore @code{>>} (I/O)
-@cindex operatori, input/output
-@cindex @code{|} (barra verticale), operatore @code{|} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|} (I/O)
-@cindex operatori, input/output
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|&} (I/O)
-@cindex operatori, input/output
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore
@code{<}
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<=}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore
@code{<=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>=}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore
@code{>=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore
@code{>}
+@cindex @code{=} (uguale) @subentry operatore @code{==}
+@cindex uguale (@code{=}) @subentry operatore @code{==}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!=}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>>} (I/O)
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore
@code{>>} (I/O)
+@cindex operatori @subentry input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|} (I/O)
+@cindex operatori @subentry input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|&} (I/O)
+@cindex operatori @subentry input/output
@item @code{< <= == != > >= >> | |&}
Operatori relazionali e ridirezione.
Gli operatori relazionali e le ridirezioni hanno lo stesso livello di
@@ -14103,8 +14211,8 @@ precedenza. I caratteri come @samp{>} servono sia come
operatori relazionali
che come ridirezioni; la distinzione tra i due significati dipende dal
contesto.
-@cindex istruzione @code{print}, operatori I/O nell'
-@cindex istruzione @code{printf}, operatori I/O nell'
+@cindex istruzione @subentry @code{print} @subentry operatori I/O in
+@cindex istruzione @subentry @code{printf} @subentry operatori I/O in
Si noti che gli operatori di ridirezione I/O nelle istruzioni @code{print} e
@code{printf} appartengono al livello dell'istruzione, non alle espressioni.
La ridirezione non produce un'espressione che potrebbe essere l'operando di un
@@ -14114,54 +14222,54 @@ parentesi. Tali combinazioni generano errori di
sintassi
(p.es., @samp{print pippo > a ? b : c}).
Il modo corretto di scrivere quest'istruzione @`e @samp{print pippo > (a ? b :
c)}.
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
@item @code{~ !~}
Corrispondenza, non corrispondenza.
-@cindex @code{in}, operatore
+@cindex @code{in} (operatore)
@item @code{in}
Appartenenza a un vettore.
-@cindex @code{&} (e commerciale), operatore @code{&&}
-@cindex e commerciale (@code{&}), operatore @code{&&}
+@cindex @code{&} (e commerciale) @subentry operatore @code{&&}
+@cindex e commerciale (@code{&}) @subentry operatore @code{&&}
@item @code{&&}
``and'' logico.
-@cindex @code{|} (barra verticale), operatore @code{||}
-@cindex barra verticale (@code{|}), operatore @code{||}
+@cindex @code{|} (barra verticale) @subentry operatore @code{||}
+@cindex barra verticale (@code{|}) @subentry operatore @code{||}
@item @code{||}
``or'' logico.
-@cindex @code{?} (punto interrogativo), operatore @code{?:}
-@cindex punto interrogativo (@code{?}), operatore @code{?:}
-@cindex @code{:} (due punti), operatore @code{?:}
-@cindex due punti (@code{:}), operatore @code{?:}
+@cindex @code{?} (punto interrogativo) @subentry operatore @code{?:}
+@cindex punto interrogativo (@code{?}) @subentry operatore @code{?:}
+@cindex @code{:} (due punti) @subentry operatore @code{?:}
+@cindex due punti (@code{:}) @subentry operatore @code{?:}
@item @code{?:}
Operatore condizionale. Questo operatore raggruppa da destra verso sinistra.
-@cindex @code{+} (pi@`u), operatore @code{+=}
-@cindex pi@`u (@code{+}), operatore @code{+=}
-@cindex @code{-} (meno), operatore @code{-=}
-@cindex meno (@code{-}), operatore @code{-=}
-@cindex @code{*} (asterisco), operatore @code{*=}
-@cindex asterisco (@code{*}), operatore @code{*=}
-@cindex @code{*} (asterisco), operatore @code{**=}
-@cindex asterisco (@code{*}), operatore @code{**=}
-@cindex @code{/} (barra), operatore @code{/=}
-@cindex barra (@code{/}), operatore @code{/=}
-@cindex @code{%} (percento), operatore @code{%=}
-@cindex percento (@code{%}), operatore @code{%=}
-@cindex @code{^} (circonflesso), operatore @code{^=}
-@cindex circonflesso (@code{^}), operatore @code{^=}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+=}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+=}
+@cindex @code{-} (meno) @subentry operatore @code{-=}
+@cindex meno (@code{-}) @subentry operatore @code{-=}
+@cindex @code{*} (asterisco) @subentry operatore @code{*=}
+@cindex asterisco (@code{*}) @subentry operatore @code{*=}
+@cindex @code{*} (asterisco) @subentry operatore @code{**=}
+@cindex asterisco (@code{*}) @subentry operatore @code{**=}
+@cindex @code{/} (barra) @subentry operatore @code{/=}
+@cindex barra (@code{/}) @subentry operatore @code{/=}
+@cindex @code{%} (percento) @subentry operatore @code{%=}
+@cindex percento (@code{%}) @subentry operatore @code{%=}
+@cindex @code{^} (circonflesso) @subentry operatore @code{^=}
+@cindex circonflesso (@code{^}) @subentry operatore @code{^=}
@item @code{= += -= *= /= %= ^= **=}
Assegnamento. Questi operatori raggruppano da destra verso sinistra.
@end table
-@cindex POSIX @command{awk}, @code{**} e
-@cindex portabilit@`a, operatori, non in POSIX @command{awk}
+@cindex POSIX @command{awk} @subentry @code{**} (operatore)
+@cindex portabilit@`a @subentry operatori @subentry non in POSIX @command{awk}
@quotation NOTA
Gli operatori @samp{|&}, @samp{**} e @samp{**=} non sono definiti da POSIX.
Per la massima portabilit@`a, @`e meglio non usarli.
@@ -14169,7 +14277,7 @@ Per la massima portabilit@`a, @`e meglio non usarli.
@node Localizzazioni
@section Il luogo fa la differenza
-@cindex localizzazione, definizione di
+@cindex localizzazione @subentry definizione di
I moderni sistemi prevedono la nozione di @dfn{localizzazione}: un modo per
informare il sistema sulla serie di caratteri e sulla lingua locali.
@@ -14280,8 +14388,8 @@ La localizzazione pu@`o influire sul formato dei dati
in uscita da un programma
@node Criteri di ricerca e azioni
@chapter Criteri di ricerca, azioni e variabili
@cindex criteri di ricerca
-@cindex @dfn{pattern}, si veda criteri di ricerca
-@cindex espressione di ricerca
+@cindex @dfn{pattern} @seeentry{criteri di ricerca}
+@cindex espressioni @subentry di ricerca
Come gi@`a visto, ogni istruzione @command{awk} consiste di un criterio di
ricerca [@dfn{pattern}] a cui @`e associata un'azione. Questo @value{CHAPTER}
@@ -14323,7 +14431,7 @@ costruire qualcosa di utile.
corrisponde a ogni record.
@end menu
-@cindex criteri di ricerca, tipi di
+@cindex criteri di ricerca @subentry tipi di
I criteri di ricerca in @command{awk} controllano l'esecuzione di
azioni: un'azione viene eseguita
quando il criterio di ricerca associato ad essa @`e soddisfatto dal
@@ -14373,8 +14481,8 @@ Il criterio di ricerca vuoto corrisponde a ciascun
record in input.
@node @dfn{regexp} come criteri di ricerca
@subsection Espressioni regolari come criteri di ricerca
-@cindex criteri di ricerca, espressioni regolari come
-@cindex espressioni regolari, come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni regolari come
+@cindex espressioni regolari @subentry come criteri di ricerca
Le espressioni regolari sono uno dei primi tipi di criteri di ricerca
presentati in questo @value{DOCUMENT}.
@@ -14392,8 +14500,8 @@ END @{ print personaggi_Disney, "Personaggi
Disney visti" @}
@node Espressioni come criteri di ricerca
@subsection Espressioni come criteri di ricerca
-@cindex espressioni regolari, come criteri di ricerca
-@cindex criteri di ricerca, espressioni regolari come
+@cindex espressioni regolari @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni regolari come
Qualsiasi espressione @command{awk} pu@`o essere usata come un criterio di
ricerca @command{awk}.
@@ -14405,8 +14513,8 @@ valore dipende direttamente dal contenuto del record in
input appena letto;
altrimenti, dipende solo da quel che @`e accaduto fino a quel momento durante
l'esecuzione del programma @command{awk}.
-@cindex espressioni di confronto, come criteri di ricerca
-@cindex criteri di ricerca, espressioni di confronto come
+@cindex espressioni @subentry di confronto @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni di confronto come
Le espressioni di confronto, che usano gli operatori di confronto descritti in
@ref{Tipi di variabile e confronti},
sono un tipo di criterio di ricerca usato frequentemente.
@@ -14419,12 +14527,12 @@ stringa @`e usato come un'espressione regolare
dinamica
L'esempio seguente stampa il secondo campo di ogni record in input
il cui primo campo sia esattamente @samp{li}:
-@cindex @code{/} (barra), criteri di ricerca e
-@cindex barra (@code{/}), criteri di ricerca e
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @code{/} (barra) @subentry criteri di ricerca e
+@cindex barra (@code{/}) @subentry criteri di ricerca e
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
@example
$ @kbd{awk '$1 == "li" @{ print $2 @}' mail-list}
@end example
@@ -14440,16 +14548,16 @@ $ @kbd{awk '$1 ~ /li/ @{ print $2 @}' mail-list}
@print{} 555-6699
@end example
-@cindex @dfn{regexp}, costanti, come criteri di ricerca
-@cindex criteri di ricerca, costanti @dfn{regexp} come
+@cindex @dfn{regexp} @subentry costanti @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry costanti @dfn{regexp} come
Una costante @dfn{regexp} usata come criterio di ricerca @`e anche un
caso speciale di criterio di ricerca costituito da un'espressione.
All'espressione @code{/li/} viene assegnato il valore uno se @samp{li}
viene trovato nel record in input corrente. Quindi, come criterio di ricerca,
@code{/li/} individua tutti i record che contengono la stringa @samp{li}.
-@cindex espressioni booleane, come criteri di ricerca
-@cindex criteri di ricerca, espressioni booleane come
+@cindex espressioni @subentry booleane @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni booleane come
Anche le espressioni booleane sono frequentemente usate come criteri di
ricerca. Se un criterio di ricerca
individua o no un record in input dipende dalla verifica delle
@@ -14492,10 +14600,10 @@ $ @kbd{awk '! /li/' mail-list}
@end group
@end example
-@cindex @code{BEGIN}, criterio di ricerca, criteri di ricerca booleani e
-@cindex @code{END}, criterio di ricerca, criteri di ricerca booleani e
-@cindex @code{BEGINFILE}, criterio di ricerca, criteri di ricerca booleani e
-@cindex @code{ENDFILE}, criterio di ricerca, criteri di ricerca booleani e
+@cindex @code{BEGIN} (regola) @subentry criteri di ricerca booleani e
+@cindex @code{END} (regola) @subentry criteri di ricerca booleani e
+@cindex @code{BEGINFILE} (regola) @subentry criteri di ricerca booleani e
+@cindex @code{ENDFILE} (regola) @subentry criteri di ricerca booleani e
Le sottoespressioni di un'operatore booleano in un criterio di ricerca possono
essere espressioni regolari costanti, confronti, o qualsiasi altra espressione
di @command{awk}. Gli intervalli di ricerca
@@ -14512,8 +14620,8 @@ criteri di ricerca @`e descritto in @ref{Precedenza}.
@subsection Specificare intervalli di record con i criteri di ricerca
@cindex intervalli di ricerca
-@cindex criteri di ricerca, intervalli nei
-@cindex righe, individuare intervalli di
+@cindex criteri di ricerca @subentry intervalli nei
+@cindex righe @subentry individuare intervalli di
@cindex @code{,} (virgola), negli intervalli di ricerca
@cindex virgola (@code{,}), negli intervalli di ricerca
Un @dfn{intervallo di ricerca} @`e composto da due criteri di ricerca
@@ -14545,7 +14653,7 @@ criterio di ricerca viene @dfn{disattivato} a partire
dal record seguente.
Quindi il criterio di ricerca torna a controllare
@var{inizio_intervallo} per ogni nuovo record.
-@cindex @code{if}, istruzione, azioni@comma{} modificabili
+@cindex @code{if} (istruzione) @subentry azioni, modificabili
Il record che segnala l'inizio dell'intervallo
di ricerca e quello che segnala la fine di quell'intervallo soddisfano
@emph{entrambi} il criterio di ricerca. Se non si vuole agire su tali record
@@ -14572,15 +14680,15 @@ Un tale programma @`e simile a questo:
@end example
@noindent
-@cindex righe, saltare tra delimitatori
+@cindex righe @subentry saltare tra delimitatori
@c @cindex @dfn{flag} variables
Questo programma non funziona, perch@'e l'intervallo di ricerca @`e sia
attivato
che disattivato dalla prima riga incontrata, quella costituita da un @samp{%}.
Per ottenere l'effetto desiderato, si scriva il programma nella maniera che
segue, utilizzando un @dfn{flag}:
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
@example
/^%$/ @{ ignora = ! ignora; next @}
ignora == 1 @{ next @} # ignora righe quando `ignora' @`e impostato a 1
@@ -14608,17 +14716,17 @@ $ @kbd{echo Yes | gawk '(/1/,/2/) || /Yes/'}
@error{} gawk: riga com.:1: ^ syntax error
@end example
-@cindex intervalli di ricerca, continuazione di riga e
-@cindex angolo buio, intervalli di ricerca, continuazione di riga e
+@cindex intervalli di ricerca @subentry continuazione di riga e
+@cindex angolo buio @subentry intervalli di ricerca @subentry continuazione di
riga e
Come punto di secondaria importanza, nonostante sia stilisticamente poco
elegante,
lo standard POSIX consente di andare a capo dopo la virgola
in un intervallo di ricerca. @value{DARKCORNER}
@node BEGIN/END
@subsection I criteri di ricerca speciali @code{BEGIN} ed @code{END}
-@cindex @code{BEGIN}, criterio di ricerca
-@cindex @code{END}, criterio di ricerca
-@cindex criterio di ricerca @code{END}
+@cindex @code{BEGIN} (regola)
+@cindex @code{END} (regola)
+@cindex regola @subentry @code{END}
Tutti i criteri di ricerca fin qui descritti servono a individuare dei record
in input.
I criteri di ricerca speciali @code{BEGIN} ed @code{END} non hanno questo
scopo.
@@ -14639,10 +14747,10 @@ da molto tempo.
@node Usare BEGIN/END
@subsubsection Azioni di inizializzazione e pulizia
-@cindex @code{BEGIN}, criterio di ricerca
-@cindex criterio di ricerca @code{BEGIN}
-@cindex @code{END}, criterio di ricerca
-@cindex criterio di ricerca @code{END}
+@cindex @code{BEGIN} (regola)
+@cindex regola @subentry @code{BEGIN}
+@cindex @code{END} (regola)
+@cindex regola @subentry @code{END}
Una regola @code{BEGIN} @`e eseguita solo una volta, prima che sia letto il
primo record in input. Analogamente, una regola @code{END} @`e eseguita
solo una volta, dopo che tutto l'input @`e gi@`a stato letto. Per esempio:
@@ -14656,9 +14764,9 @@ $ @kbd{awk '}
@print{} "li" @`e presente in 4 record.
@end example
-@cindex @code{BEGIN}, criterio di ricerca, operatori e
-@cindex @code{END}, criterio di ricerca, operatori e
-@cindex criterio di ricerca @code{END}, operatori e
+@cindex @code{BEGIN} (regola) @subentry operatori e
+@cindex @code{END} (regola) @subentry operatori e
+@cindex regola @subentry @code{END} @subentry operatori e
Questo programma trova il numero di record nel file in input
@file{mail-list} che contengono la stringa @samp{li}. La regola @code{BEGIN}
stampa un titolo per il rapporto. Non c'@`e bisogno di usare la regola
@@ -14716,7 +14824,7 @@ la regola @code{END} faccia uso delle variabili
@code{FNR} e @code{NR}.
@node I/O e BEGIN/END
@subsubsection Input/Output dalle regole @code{BEGIN} ed @code{END}
-@cindex input/output, dalle regole @code{BEGIN} ed @code{END}
+@cindex input/output @subentry dalle regole @code{BEGIN} ed @code{END}
Ci sono parecchi punti (talora insidiosi) da tener presente se si fa dell'I/O
all'interno di una regola @code{BEGIN} o @code{END}.
Il primo ha a che fare con il valore di @code{$0} in una regola @code{BEGIN}.
@@ -14728,12 +14836,12 @@ Un modo per assegnare un valore effettivo a @code{$0}
@`e di eseguire un
comando @code{getline} senza indicare una variabile (@pxref{Getline}).
Un altro modo @`e semplicemente quello di assegnare un valore a @code{$0}.
-@cindex Brian Kernighan, @command{awk} di
-@cindex differenze tra @command{awk} e @command{gawk}, criteri di ricerca
@code{BEGIN}/@code{END}
-@cindex POSIX @command{awk}, criteri di ricerca @code{BEGIN}/@code{END}
-@cindex @code{print}, istruzione, criteri di ricerca @code{BEGIN}/@code{END} e
-@cindex @code{BEGIN}, criterio di ricerca, istruzione @code{print} e
-@cindex @code{END}, criterio di ricerca, istruzione @code{print} e
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex differenze tra @command{awk} e @command{gawk} @subentry criteri di
ricerca @code{BEGIN}/@code{END}
+@cindex POSIX @command{awk} @subentry criteri di ricerca
@code{BEGIN}/@code{END}
+@cindex @code{print} (istruzione) @subentry criteri di ricerca
@code{BEGIN}/@code{END} e
+@cindex @code{BEGIN} (regola) @subentry istruzione @code{print} e
+@cindex @code{END} (regola) @subentry istruzione @code{print} e
Il secondo punto @`e simile al primo, ma in direzione opposta.
Tradizionalmente, pi@`u che altro per problemi di implementazione, @code{$0}
e @code{NF} erano @emph{indefiniti} all'interno di una regola @code{END}.
@@ -14760,10 +14868,10 @@ almeno in @command{gawk}. @`E anche stilisticamente
inelegante, perch@'e se
serve una riga vuota in output, il programma dovrebbe stamparne
una esplicitamente.
-@cindex @code{next}, istruzione, criteri di ricerca @code{BEGIN}/@code{END} e
-@cindex @code{nextfile}, istruzione, criteri di ricerca
@code{BEGIN}/@code{END} e
-@cindex @code{BEGIN}, criterio di ricerca, istruzioni
@code{next}/@code{nextfile} e
-@cindex @code{END}, criterio di ricerca, istruzioni
@code{next}/@code{nextfile} e
+@cindex @code{next} (istruzione) @subentry criteri di ricerca
@code{BEGIN}/@code{END} e
+@cindex @code{nextfile} (istruzione) @subentry criteri di ricerca
@code{BEGIN}/@code{END} e
+@cindex @code{BEGIN} (regola) @subentry istruzioni @code{next}/@code{nextfile}
e
+@cindex @code{END} (regola) @subentry istruzioni @code{next}/@code{nextfile} e
Per finire, le istruzioni @code{next} e @code{nextfile} non sono consentite
all'interno di una regola @code{BEGIN}, perch@'e il ciclo implicito
leggi-un-record-e-confrontalo-con-le-regole non @`e ancora iniziato.
@@ -14779,9 +14887,9 @@ Analogamente, tali istruzioni non sono valide
all'interno di una regola
@node BEGINFILE/ENDFILE
@subsection I criteri di ricerca speciali @code{BEGINFILE} ed @code{ENDFILE}
-@cindex @code{BEGINFILE}, criterio di ricerca
-@cindex @code{ENDFILE}, criterio di ricerca
-@cindex differenze tra @command{awk} e @command{gawk}, criteri di ricerca
@code{BEGINFILE}/@code{ENDFILE}
+@cindex @code{BEGINFILE} (regola)
+@cindex @code{ENDFILE} (regola)
+@cindex differenze tra @command{awk} e @command{gawk} @subentry criteri di
ricerca @code{BEGINFILE}/@code{ENDFILE}
@ifnotinfo
Questa
@@ -14826,9 +14934,9 @@ nella riga dei comandi non pu@`o essere aperto in
lettura, il programma
@command{gawk} viene terminato. Comunque, questo si pu@`o evitare, per poi
passare a elaborare il file successivo specificato sulla riga dei comandi.
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile, con criterio di ricerca @code{BEGINFILE}
-@cindex @code{nextfile}, istruzione, criteri di ricerca
@code{BEGINFILE}/@code{ENDFILE} e
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile) @subentry con criterio di ricerca
@code{BEGINFILE}
+@cindex @code{nextfile} (istruzione) @subentry criteri di ricerca
@code{BEGINFILE}/@code{ENDFILE} e
Questo controllo @`e fattibile controllando se la variabile @code{ERRNO} @`e
diversa dalla stringa nulla; se @`e questo il caso, @command{gawk} non @`e
riuscito ad aprire il file. In questo caso il programma pu@`o eseguire
@@ -14859,13 +14967,13 @@ una regola @code{ENDFILE}, l'errore non @`e
considerato fatale, ma viene
impostato @code{ERRNO}. Ci@`o permette di intercettare ed elaborare errori
di I/O a livello di programma @command{awk}.
-@cindex @code{next}, istruzione, criteri di ricerca
@code{BEGINFILE}/@code{ENDFILE} e
+@cindex @code{next} (istruzione) @subentry criteri di ricerca
@code{BEGINFILE}/@code{ENDFILE} e
L'istruzione @code{next} (@pxref{Istruzione next}) non @`e permessa all'interno
di una regola @code{BEGINFILE} o @code{ENDFILE}. L'istruzione @code{nextfile}
@`e consentita solo all'interno di una regola @code{BEGINFILE}, non all'interno
di una regola @code{ENDFILE}.
-@cindex @code{getline}, comando, criteri di ricerca
@code{BEGINFILE}/@code{ENDFILE} e
+@cindex @code{getline} (comando) @subentry criteri di ricerca
@code{BEGINFILE}/@code{ENDFILE} e
L'istruzione @code{getline} (@pxref{Getline}) @`e limitata all'interno sia di
@code{BEGINFILE} che di @code{ENDFILE}: solo le forme ridirette di
di @code{getline} sono permesse.
@@ -14899,8 +15007,8 @@ rule to grab it before moving on to the next file.]
@node Vuoto
@subsection Il criterio di ricerca vuoto
-@cindex vuoto, criterio di ricerca
-@cindex criteri di ricerca vuoti
+@cindex vuoto @subentry criterio di ricerca
+@cindex criteri di ricerca @subentry vuoti
Un criterio di ricerca vuoto (cio@`e omesso) corrisponde a
@emph{ogni} record in input. Per esempio, il programma:
@@ -14913,8 +15021,8 @@ stampa il primo campo di ogni record.
@node Usare variabili di shell
@section Usare variabili di shell in programmi
-@cindex shell, variabili di
-@cindex programmi @command{awk}, variabili di shell in
+@cindex shell @subentry variabili di
+@cindex programmi @command{awk} @subentry variabili di shell nei
@c @cindex shell and @command{awk} interaction
I programmi @command{awk} sono spesso usati come componenti di programmi pi@`u
@@ -14925,7 +15033,7 @@ individuare.
Ci sono due modi per rendere disponibile il valore di una variabile di shell
all'interno di un programma @command{awk}.
-@cindex shell, uso di doppio apice
+@cindex shell @subentry uso di doppio apice
Un modo comune @`e quello di usare i doppi apici per sostituire il valore della
variabile nel progamma @command{awk} contenuto nello @dfn{script}:
@@ -14978,8 +15086,8 @@ La variabile @command{awk} @code{crit} potrebbe avere
come nome anche
@code{criterio_di_ricerca}, ma ci@`o potrebbe essere causa di confusione.
Usare una variabile permette una maggiore flessibilit@`a, poich@'e la variabile
pu@`o essere usata in ogni parte del
-programma---per stamparla, per indicizzare un vettore, o per qualsiasi altro
-scopo---senza che sia necessario l'artificio di doverla inserire usando gli
+programma --- per stamparla, per indicizzare un vettore, o per qualsiasi altro
+scopo --- senza che sia necessario l'artificio di doverla inserire usando gli
apici.
@node Panoramica sulle azioni
@@ -15007,12 +15115,12 @@ con il criterio di ricerca. Quindi, schematicamente,
un programma
@dots{}
@end display
-@cindex @code{@{@}} (parentesi graffe), azioni e
-@cindex parentesi graffe (@code{@{@}}), azioni e
-@cindex separatori, per istruzioni in azioni
-@cindex a capo, separatore di istruzioni nelle azioni
-@cindex @code{;} (punto e virgola), separare istruzioni nelle azioni
-@cindex punto e virgola (@code{;}), separare istruzioni nelle azioni
+@cindex @code{@{@}} (parentesi graffe) @subentry azioni e
+@cindex parentesi @subentry graffe (@code{@{@}}) @subentry azioni e
+@cindex separatore di istruzioni @subentry nelle azioni
+@cindex ritorno a capo @subentry separatore di istruzioni nelle azioni
+@cindex @code{;} (punto e virgola) @subentry separare istruzioni nelle azioni
+@cindex punto e virgola (@code{;}) @subentry separare istruzioni nelle azioni
Un'azione consiste di una o pi@`u @dfn{istruzioni} @command{awk}, racchiuse
fra parentesi graffe (@samp{@{@r{@dots{}}@}}). Ogni istruzione specifica
una cosa da fare. Le istruzioni sono separate tra loro da dei ritorni a capo o
@@ -15031,8 +15139,8 @@ parentesi graffe. Un'azione omessa equivale a
specificare
I seguenti tipi di istruzione sono disponibili in @command{awk}:
@table @asis
-@cindex effetti collaterali delle istruzioni
-@cindex istruzioni, effetti collaterali delle
+@cindex effetti collaterali @subentry delle istruzioni
+@cindex istruzioni @subentry effetti collaterali delle
@item Espressioni
Servono per chiamare funzioni o assegnare valori a variabili
@iftex
@@ -15082,21 +15190,21 @@ Per eliminare elementi di vettori.
@node Istruzioni
@section Istruzioni di controllo nelle azioni
@cindex istruzioni di controllo
-@cindex controllo, tramite istruzioni, in azioni
-@cindex azioni, istruzioni di controllo in
+@cindex controllo @subentry tramite istruzioni @subentry in azioni
+@cindex azioni @subentry istruzioni di controllo in
Le @dfn{istruzioni di controllo}, come @code{if}, @code{while} e
cos@`{@dotless{i}} via,
regolano il flusso di esecuzione nei programmi @command{awk}. Molte tra
le istruzioni di controllo di @command{awk} sono modellate sulle
corrispondenti istruzioni in C.
-@cindex istruzioni composte@comma{} istruzioni di controllo e
-@cindex composte, istruzioni@comma{} istruzioni di controllo e
-@cindex corpo, nelle azioni
-@cindex @code{@{@}} (parentesi graffe), istruzioni, raggruppare
-@cindex parentesi graffe (@code{@{@}}), istruzioni, raggruppare
-@cindex a capo, separatore di istruzioni nelle azioni
-@cindex @code{;} (punto e virgola), separare istruzioni nelle azioni
-@cindex punto e virgola (@code{;}), separare istruzioni nelle azioni
+@cindex istruzioni composte @subentry istruzioni di controllo e
+@cindex composte @subentry istruzioni @subentry istruzioni di controllo e
+@cindex corpo @subentry nelle azioni
+@cindex @code{@{@}} (parentesi graffe) @subentry istruzioni, raggruppare
+@cindex parentesi @subentry graffe (@code{@{@}}) @subentry istruzioni,
raggruppare
+@cindex ritorno a capo @subentry separatore di istruzioni nelle azioni
+@cindex @code{;} (punto e virgola) @subentry separare istruzioni nelle azioni
+@cindex punto e virgola (@code{;}) @subentry separare istruzioni nelle azioni
Tutte le istruzioni di controllo iniziano con parole chiave speciali, come
@code{if} e @code{while}, per distinguerle dalle semplici espressioni.
Molte istruzioni di controllo contengono altre istruzioni. Per esempio,
@@ -15132,8 +15240,8 @@ loro con dei ritorni a capo o dei punti e virgola.
@node Istruzione if
@subsection L'istruzione @code{if}-@code{else}
-@cindex istruzione @code{if}
-@cindex @code{if}, istruzione
+@cindex istruzione @subentry @code{if}
+@cindex @code{if} (istruzione)
L'istruzione @code{if}-@code{else} @`e quella che serve in @command{awk}
per prendere decisioni. @`E simile
a questa:
@@ -15184,11 +15292,11 @@ questo modo, perch@'e a chi li legge potrebbe
sfuggire la parola chiave
@node Istruzione while
@subsection L'istruzione @code{while}
-@cindex @code{while}, istruzione
-@cindex istruzione @code{while}
+@cindex @code{while} (istruzione)
+@cindex istruzione @subentry @code{while}
@cindex cicli
-@cindex cicli, @code{while}
-@cindex cicli, si veda anche @code{while}, istruzione
+@cindex cicli @subentry @code{while}
+@cindex cicli @seealso{@code{while} (istruzione)}
Nella programmazione, un @dfn{ciclo} @`e una parte di un programma che pu@`o
essere eseguita due o pi@`u volte consecutivamente.
@@ -15201,7 +15309,7 @@ while (@var{condizione})
@var{corpo-del-ciclo}
@end example
-@cindex corpo, nei cicli
+@cindex corpo @subentry nei cicli
@noindent
@var{corpo-del-ciclo} @`e un'istruzione detta @dfn{corpo} del ciclo,
e @var{condizione} @`e un'espressione che controlla per quante volte il ciclo
@@ -15256,8 +15364,8 @@ programma @`e di lettura pi@`u difficile se lo si
omette.
@node Istruzione do
@subsection L'istruzione @code{do}-@code{while}
-@cindex @code{do}-@code{while}
-@cindex cicli, @code{do}-@code{while}
+@cindex @code{do}-@code{while} (istruzione)
+@cindex cicli @subentry @code{do}-@code{while}
Il ciclo @code{do} @`e una variazione dell'istruzione di ciclo @code{while}.
Il ciclo @code{do} esegue il @var{corpo-del-ciclo} una volta e poi ripete il
@@ -15302,9 +15410,9 @@ reale; solo occasionalmente @`e davvero necessario
usare un @code{do}.
@node Istruzione for
@subsection L'istruzione @code{for}
-@cindex istruzione @code{for}
-@cindex @code{for}, istruzione
-@cindex cicli, @code{for}, iterativi
+@cindex istruzione @subentry @code{for}
+@cindex @code{for} (istruzione)
+@cindex cicli @subentry @code{for} @subentry iterativi
L'istruzione @code{for} rende pi@`u agevole contare le iterazioni di un ciclo.
La forma generale dell'istruzione @code{for} @`e simile a questa:
@@ -15384,7 +15492,7 @@ while (@var{condizione}) @{
@}
@end example
-@cindex cicli, istruzione @code{continue} e
+@cindex cicli @subentry istruzione @code{continue} e
@noindent
La sola eccezione @`e quando l'istruzione @code{continue}
(@pxref{Istruzione continue}) @`e usata
@@ -15400,8 +15508,8 @@ Contare il numero di iterazioni @`e
molto frequente nei cicli. Pu@`o essere pi@`u facile pensare a questo conto
come
parte del ciclo, piuttosto che come qualcosa da fare all'interno del ciclo.
-@cindex @code{in}, operatore
-@cindex operatore @code{in}
+@cindex @code{in} (operatore)
+@cindex operatore @subentry @code{in}
Esiste una versione alternativa al ciclo @code{for}, per esaminare tutti
gli indici di un vettore:
@@ -15416,11 +15524,13 @@ per maggiori informazioni su questa versione del
ciclo @code{for}.
@node Istruzione switch
@subsection L'istruzione @code{switch}
-@cindex @code{switch}, istruzione
-@cindex @code{case}, parola chiave
-@cindex parola chiave @code{case}
-@cindex @code{default}, parola chiave
-@cindex parola chiave @code{default}
+@cindex @code{switch} (istruzione)
+@cindex @code{case} @subentry parola chiave
+@cindex @code{case} @subentry @seealso{@code{switch} (istruzione)}
+@cindex parola @subentry chiave @code{case}
+@cindex @code{default} @subentry parola chiave
+@cindex @code{default} @subentry @seealso{@code{switch} (istruzione)}
+@cindex parola @subentry chiave @code{default}
@ifnotinfo
Questa
@@ -15505,10 +15615,10 @@ chiamare una funzione di nome @code{uso()}.
@node Istruzione break
@subsection L'istruzione @code{break}
-@cindex @code{break}, istruzione
-@cindex istruzione @code{break}
-@cindex cicli, uscita
-@cindex cicli, istruzione @code{break} e
+@cindex @code{break} (istruzione)
+@cindex istruzione @subentry @code{break}
+@cindex cicli @subentry uscita
+@cindex cicli @subentry istruzione @code{break} e
L'istruzione @code{break} esce dal ciclo pi@`u interno @code{for},
@code{while} o @code{do} dentro al quale si trova. L'esempio seguente
@@ -15571,10 +15681,10 @@ Questo argomento @`e trattato in @ref{Istruzione
switch}.
@c @cindex @code{break}, outside of loops
@c @cindex historical features
@c @cindex @command{awk} language, POSIX version
-@cindex POSIX @command{awk}, @code{break} e
-@cindex angolo buio, istruzione @code{break}
-@cindex @command{gawk}, istruzione @code{break} in
-@cindex Brian Kernighan, @command{awk} di
+@cindex POSIX @command{awk} @subentry @code{break} (istruzione)
+@cindex angolo buio @subentry istruzione @subentry @code{break}
+@cindex @command{gawk} @subentry @code{break} (istruzione) in
+@cindex Brian Kernighan @subentry @command{awk} di
L'istruzione @code{break} non ha significato se
usata fuori dal corpo di un ciclo o di un'istruzione @code{switch}.
Tuttavia, anche se la cosa non @`e mai stata documentata,
@@ -15588,8 +15698,8 @@ e lo stesso fa @command{gawk}.
@node Istruzione continue
@subsection L'istruzione @code{continue}
-@cindex @code{continue}, istruzione
-@cindex istruzione @code{continue}
+@cindex @code{continue} (istruzione)
+@cindex istruzione @subentry @code{continue}
Analogamente a @code{break}, l'istruzione @code{continue} @`e usata solo
all'interno di cicli @code{for}, @code{while} e @code{do}. L'istruzione
ignora il resto del corpo del ciclo, facendo s@`{@dotless{i}} che la
successiva iterazione
@@ -15613,7 +15723,7 @@ BEGIN @{
@end example
@noindent
-Questo programma stampa tutti i numeri da 0 a 20---tranne il 5, in cui
+Questo programma stampa tutti i numeri da 0 a 20 --- tranne il 5, in cui
l'istruzione @code{printf} @`e saltata. Siccome l'incremento @samp{x++}
non viene saltato, @code{x} non rimane fermo al valore 5. Si confronti il
ciclo
@code{for} dell'esempio precedente con il seguente ciclo @code{while}:
@@ -15635,13 +15745,13 @@ BEGIN @{
Questo programma inizia un ciclo infinito dopo che @code{x} ha assunto il
valore 5, poich@'e l'istruzione di incremento (@samp{x++}) non @`e mai
raggiunta.
-@c @cindex @code{continue}, fuori da un ciclo
-@c @cindex funzionalit@`a del passato
-@c @cindex linguaggio @command{awk}, versione POSIX
-@cindex POSIX @command{awk}, istruzione @code{continue} e
-@cindex angolo buio, istruzione @code{continue}
-@cindex @command{gawk}, istruzione @code{continue} in
-@cindex Brian Kernighan, @command{awk} di
+@c @cindex @code{continue}, outside of loops
+@c @cindex historical features
+@c @cindex @command{awk} language, POSIX version
+@cindex POSIX @command{awk} @subentry @code{continue} (istruzione)
+@cindex angolo buio @subentry istruzione @subentry @code{continue}
+@cindex @command{gawk} @subentry @code{continue} (istruzione) in
+@cindex Brian Kernighan @subentry @command{awk} di
L'istruzione @code{continue} non ha un significato speciale se appare in
un'istruzione @code{switch}, e non ha alcun significato se usata fuori dal
corpo di un ciclo. Le prime versioni di @command{awk} trattavano le
@@ -15660,8 +15770,8 @@ e lo stesso vale per @command{gawk}.
@node Istruzione next
@subsection L'istruzione @code{next}
-@cindex @code{next}, istruzione
-@cindex istruzione @code{next}
+@cindex @code{next} (istruzione)
+@cindex istruzione @subentry @code{next}
L'istruzione @code{next} fa s@`{@dotless{i}} che @command{awk} termini
immediatamente
l'elaborazione del record corrente e proceda a elaborare il record successivo.
@@ -15675,7 +15785,7 @@ successivo immediatamente, ma non altera il flusso del
controllo in alcun
modo (cio@`e, il resto dell'azione in esecuzione prosegue con il nuovo record
in input).
-@cindex @command{awk}, programmi, eseguire
+@cindex programmi @command{awk} @subentry eseguire
Al livello pi@`u alto, l'esecuzione di un programma @command{awk} @`e un ciclo
che legge un record in input e quindi confronta il criterio di ricerca di
ciascuna regola con il record stesso. Se si vede questo ciclo come un
@@ -15710,16 +15820,14 @@ in input, vengono eseguite le eventuali regole
@code{END} presenti.
@xref{BEGIN/END}.
L'istruzione @code{next} non @`e consentita all'interno delle regole
-@code{BEGINFILE} ed @code{ENDFILE}.
-@xref{BEGINFILE/ENDFILE}.
+@code{BEGINFILE} ed @code{ENDFILE}. @xref{BEGINFILE/ENDFILE}.
-@c @cindex @command{awk} language, POSIX version
@c @cindex @code{next}, inside a user-defined function
-@cindex @code{BEGIN}, criterio di ricerca, istruzioni
@code{next}/@code{nextfile} e
-@cindex @code{END}, criterio di ricerca, istruzioni
@code{next}/@code{nextfile} e
-@cindex POSIX @command{awk}, istruzioni @code{next}/@code{nextfile} e
-@cindex @code{next}, istruzione, in funzioni definite dall'utente
-@cindex funzioni definite dall'utente, istruzioni @code{next}/@code{nextfile} e
+@cindex @code{BEGIN} (regola) @subentry istruzioni @code{next}/@code{nextfile}
e
+@cindex @code{END} (regola) @subentry istruzioni @code{next}/@code{nextfile} e
+@cindex POSIX @command{awk} @subentry @code{next}/@code{nextfile} (istruzioni)
+@cindex @code{next} (istruzione) @subentry in funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry istruzioni
@code{next}/@code{nextfile} e
Secondo lo standard POSIX, il comportamento di @command{awk} @`e indefinito
se @code{next} @`e usato in una regola @code{BEGIN} o @code{END}.
@command{gawk} considera questo come un errore di sintassi. Sebbene POSIX
@@ -15733,8 +15841,8 @@ a partire dalla prima regola del programma.
@node Istruzione nextfile
@subsection L'istruzione @code{nextfile}
-@cindex @code{nextfile}, istruzione
-@cindex istruzione @code{nextfile}
+@cindex @code{nextfile} (istruzione)
+@cindex istruzione @subentry @code{nextfile}
L'istruzione @code{nextfile}
@`e simile all'istruzione @code{next}.
@@ -15791,11 +15899,11 @@ includerla nello standard POSIX.
Si veda @uref{http://austingroupbugs.net/view.php?id=607, il sito web
dell'Austin Group}.
@end quotation
-@cindex funzioni definite dall'utente, istruzioni @code{next}/@code{nextfile} e
-@cindex @code{nextfile}, in funzioni definite dall'utente
-@cindex Brian Kernighan, @command{awk} di
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex funzione definita dall'utente @subentry istruzioni
@code{next}/@code{nextfile} e
+@cindex @code{nextfile} (istruzione) @subentry in funzioni definite dall'utente
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
Le versioni correnti di BWK @command{awk} e @command{mawk}
entrambe prevedono @code{nextfile}. Tuttavia, non sono consentite istruzioni
@code{nextfile} all'interno del corpo delle funzioni
@@ -15809,8 +15917,8 @@ qualsiasi altra istruzione @code{nextfile}.
@node Istruzione exit
@subsection L'istruzione @code{exit}
-@cindex @code{exit}, istruzione
-@cindex istruzione @code{exit}
+@cindex @code{exit} (istruzione)
+@cindex istruzione @subentry @code{exit}
L'istruzione @code{exit} fa s@`{@dotless{i}} che @command{awk} termini
immediatamente
l'esecuzione della regola corrente e che termini di elaborare l'input;
qualsiasi input ancora da elaborare @`e ignorato. L'istruzione @code{exit} @`e
@@ -15820,10 +15928,10 @@ scritta come segue:
@code{exit} [@var{codice di ritorno}]
@end display
-@cindex @code{BEGIN}, criterio di ricerca, istruzione @code{exit} e
-@cindex criterio di ricerca @code{BEGIN}, istruzione @code{exit} e
-@cindex @code{END}, criterio di ricerca, istruzione @code{exit} e
-@cindex criterio di ricerca @code{END}, istruzione @code{exit} e
+@cindex @code{BEGIN} (regola) @subentry istruzione @code{exit} e
+@cindex regola @subentry @code{BEGIN} @subentry @code{exit} (istruzione) e
+@cindex @code{END} (regola) @subentry istruzione @code{exit} e
+@cindex regola @subentry @code{END} @subentry @code{exit} (istruzione) e
Quando un'istruzione @code{exit} @`e eseguita all'interno di una regola
@code{BEGIN},
il programma termina completamente l'elaborazione. Nessun record in input
viene letto. Tuttavia, se una regola @code{END} @`e presente, come parte
@@ -15846,7 +15954,7 @@ una variabile a un valore diverso da zero, prima di
invocare l'istruzione
@xref{Funzione assert}
per un esempio di questo tipo.
-@cindex angolo buio, istruzione @code{exit}
+@cindex angolo buio @subentry istruzione @subentry @code{exit}
Se si specifica un argomento all'istruzione @code{exit}, il suo valore @`e
usato come codice di ritorno finale dell'elaborazione @command{awk}. Se non
viene specificato alcun argomento,
@@ -15859,7 +15967,7 @@ argomento, @command{awk} usa il codice di ritorno
specificato in precedenza.
@value{DARKCORNER}
@xref{Codice di ritorno} per maggiori informazioni.
-@cindex convenzioni di programmazione, istruzione @code{exit}
+@cindex convenzioni di programmazione @subentry istruzione @code{exit}
Per esempio, si supponga che si sia verificata una condizione di errore
difficile o impossibile da gestire. Convenzionalmente, i programmi la
segnalano terminando con un codice di ritorno diverso da zero. Un programma
@@ -15891,8 +15999,8 @@ risultati coerenti tra loro in sistemi operativi
diversi.
@node Variabili predefinite
@section Variabili predefinite
-@cindex predefinite, variabili
-@cindex variabili predefinite
+@cindex predefinita @subentry variabile
+@cindex variabili @subentry predefinite
La maggior parte delle variabili @command{awk} sono disponibili per essere
usate dall'utente secondo le proprie esigenze;
@@ -15907,7 +16015,7 @@ maniera desiderata. Altre variabili sono impostate
automaticamente da
@command{awk}, in modo da poter comunicare al programma in esecuzione
informazioni sul modo di procedere interno di @command{awk}.
-@cindex @command{gawk}, variabili predefinite e
+@cindex @command{gawk} @subentry variabili predefinite e
Questa @value{SECTION} documenta tutte le variabili predefinite di
@command{gawk}; molte di queste variabili sono anche documentate nei
@value{CHAPTER} che descrivono le loro aree di influenza.
@@ -15922,8 +16030,8 @@ Questa @value{SECTION} documenta tutte le variabili
predefinite di
@node Variabili modificabili dall'utente
@subsection Variabili predefinite modificabili per controllare @command{awk}
-@cindex variabili predefinite, modificabili dall'utente
-@cindex modificabili dall'utente, variabili
+@cindex variabili @subentry predefinite @subentry modificabili dall'utente
+@cindex modificabili dall'utente @subentry variabili
La seguente @`e una lista alfabetica di variabili che @`e possibile modificare
per
controllare come @command{awk} gestisce alcuni compiti.
@@ -15936,11 +16044,11 @@ modalit@`a compatibile
sono menzionate nella descrizione di ogni variabile.)
@table @code
-@cindex @code{BINMODE}, variabile
-@cindex variabile @code{BINMODE}
-@cindex binario, input/output
-@cindex input/output binario
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{BINMODE}
+@cindex @code{BINMODE} (variabile)
+@cindex variabile @subentry @code{BINMODE}
+@cindex binario @subentry input/output
+@cindex input/output @subentry binario
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{BINMODE}
@item BINMODE #
Su sistemi non-POSIX, questa variabile specifica l'uso della modalit@`a binaria
per tutto l'I/O. I valori numerici di uno, due o tre specificano che i file
@@ -15958,11 +16066,11 @@ devono usare I/O binario. Ogni altro valore di
stringa @`e trattato come
dettaglio in @ref{Uso su PC}. @command{mawk} (@pxref{Altre versioni})
prevede questa variabile, ma consente solo valori numerici.
-@cindex @code{CONVFMT}, variabile
-@cindex variabile @code{CONVFMT}
-@cindex POSIX @command{awk}, variabile @code{CONVFMT} e
-@cindex numeri, conversione in stringhe
-@cindex stringhe, conversione in numeri
+@cindex @code{CONVFMT} (variabile)
+@cindex variabile @subentry @code{CONVFMT}
+@cindex POSIX @command{awk} @subentry @code{CONVFMT} (variabile)
+@cindex numeri @subentry conversione in stringhe
+@cindex stringa @subentry conversione in numero
@item @code{CONVFMT}
Una stringa che controlla la conversione di numeri in
stringhe (@pxref{Conversione}).
@@ -15972,12 +16080,12 @@ In effetti @`e la stringa passata come primo
argomento alla funzione
Il suo valore di default @`e @code{"%.6g"}.
@code{CONVFMT} @`e stata introdotta dallo standard POSIX.
-@cindex @command{gawk}, variabile @code{FIELDWIDTHS} in
-@cindex @code{FIELDWIDTHS}, variabile
-@cindex variabile @code{FIELDWIDTHS}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile
@code{FIELDWIDTHS}
-@cindex separatori di campo, variabile @code{FIELDWIDTHS} e
-@cindex campo, separatori di, variabile @code{FIELDWIDTHS} e
+@cindex @command{gawk} @subentry variabile @subentry @code{FIELDWIDTHS} in
+@cindex @code{FIELDWIDTHS} (variabile)
+@cindex variabile @subentry @code{FIELDWIDTHS}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{FIELDWIDTHS}
+@cindex separatore di campo @subentry variabile @code{FIELDWIDTHS} e
+@cindex campi @subentry separatore di @subentry variabile @code{FIELDWIDTHS} e
@item FIELDWIDTHS #
Una lista di posizioni di colonna, separate da spazi, per dire a
@command{gawk}
@@ -15990,12 +16098,12 @@ Assegnando un valore a @code{FIELDWIDTHS}, le
variabili @code{FS} e
@emph{non} vengono usate per effettuare la divisione in campi.
@xref{Dimensione costante} per maggiori informazioni.
-@cindex @command{gawk}, variabile @code{FPAT} in
-@cindex @code{FPAT}, variabile
-@cindex variabile @code{FPAT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{FPAT}
-@cindex separatori di campo, variabile @code{FPAT} e
-@cindex campo, separatori di, variabile @code{FPAT} e
+@cindex @command{gawk} @subentry variabile @subentry @code{FPAT} in
+@cindex @code{FPAT} (variabile)
+@cindex variabile @subentry @code{FPAT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{FPAT}
+@cindex separatore di campo @subentry variabile @code{FPAT} e
+@cindex campi @subentry separatore di @subentry variabile @code{FPAT} e
@item FPAT #
Un'espressione regolare (di tipo stringa) per dire a @command{gawk}
di creare i campi utilizzando come delimitatore il testo che corrisponde
@@ -16005,10 +16113,10 @@ le variabili @code{FS} e @code{FIELDWIDTHS}
@emph{non} vengono usate per effettuare la divisione in campi.
@xref{Separazione in base al contenuto} per maggiori informazioni.
-@cindex @code{FS}, variabile
-@cindex variabile @code{FS}
-@cindex campo, separatori di
-@cindex separatori di campo
+@cindex @code{FS} (variabile)
+@cindex variabile @subentry @code{FS}
+@cindex campi @subentry separatore di
+@cindex separatore di campo
@item FS
Il separatore dei campi in input (@pxref{Separatori di campo}).
Il valore pu@`o essere una stringa di un solo carattere o un'espressione
@@ -16021,7 +16129,7 @@ specifica il comportamento quando @code{FS} @`e la
stringa nulla.
Nonostante questo, alcune altre versioni di @command{awk} trattano @code{""}
in modo speciale.)
-@cindex POSIX @command{awk}, variabile @code{FS} e
+@cindex POSIX @command{awk} @subentry @code{FS} (variabile)
Il valore di default @`e @w{@code{" "}}, una stringa consistente in un singolo
spazio. In via eccezionale, questo valore significa che qualsiasi sequenza
di spazi, TAB, e/o ritorni a capo costituisce
@@ -16036,7 +16144,7 @@ l'opzione @option{-F}:
awk -F, '@var{programma}' @var{file-in-input}
@end example
-@cindex @command{gawk}, separatori di campo e
+@cindex @command{gawk} @subentry separatore di campo e
Se @command{gawk} sta usando @code{FIELDWIDTHS} o @code{FPAT}
per separare i campi,
assegnare un valore a @code{FS} fa s@`{@dotless{i}} che @command{gawk} torni
alla
@@ -16045,13 +16153,13 @@ Un modo semplice per fare questo
@`e semplicemente quello di scrivere l'istruzione
@samp{FS = FS}, aggiungendo magari un commento esplicativo.
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
-@cindex @code{IGNORECASE}, variabile
-@cindex variabile @code{IGNORECASE}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile
@code{IGNORECASE}
-@cindex maiuscolo/minuscolo, confronti tra stringhe e
-@cindex maiuscolo/minuscolo, @dfn{regexp} e
-@cindex espressioni regolari, maiuscolo/minuscolo
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
+@cindex @code{IGNORECASE} (variabile)
+@cindex variabile @subentry @code{IGNORECASE}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{IGNORECASE}
+@cindex maiuscolo/minuscolo @subentry confronti tra stringhe e
+@cindex maiuscolo/minuscolo @subentry @dfn{regexp} e
+@cindex espressioni regolari @subentry maiuscolo/minuscolo
@item IGNORECASE #
Se la variabile @code{IGNORECASE} @`e diversa da zero o dalla stringa nulla,
tutti i confronti tra stringhe
@@ -16069,13 +16177,13 @@ e non influenza la separazione dei campi qualora si
usi un separatore di campo
costituito da un unico carattere.
@xref{Maiuscolo-Minuscolo}.
-@cindex @command{gawk}, variabile @code{LINT} in
-@cindex @code{LINT}, variabile
-@cindex variabile @code{LINT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{LINT}
-@cindex @dfn{lint}, controlli
-@cindex controlli @dfn{lint}
-@item LINT #
+@cindex @command{gawk} @subentry variabile @subentry @code{LINT} in
+@cindex @code{LINT} (variabile)
+@cindex variabile @subentry @code{LINT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{LINT}
+@cindex @dfn{lint} @subentry controlli
+@cindex controllo @subentry @dfn{lint}
+@item LINT o
Quando questa variabile @`e vera (non uguale a zero e non uguale alla stringa
nulla), @command{gawk} si comporta come se fosse stata specificata sulla
riga di comando l'opzione @option{--lint}
@@ -16099,10 +16207,10 @@ diversi aspetti del comportamente di @command{gawk},
il controllo
degli avvertimenti di @dfn{lint} durante l'esecuzione del programma @`e
indipendente
dall'implementazione @command{awk} in esecuzione.
-@cindex @code{OFMT}, variabile
-@cindex variabile @code{OFMT}
-@cindex numeri, conversione in stringhe
-@cindex stringhe, conversione in numeri
+@cindex @code{OFMT} (variabile)
+@cindex variabile @subentry @code{OFMT}
+@cindex numeri @subentry conversione in stringhe
+@cindex stringa @subentry conversione in numero
@item OFMT
@`E questa la stringa che controlla la conversione di numeri in
stringhe (@pxref{Conversione}) quando li
@@ -16115,45 +16223,45 @@ usavano @code{OFMT} per specificare il formato da
usare per convertire
numeri in stringhe in espressioni generali; questo compito @`e ora svolto
da @code{CONVFMT}.
-@cindex funzione @code{sprintf()}, variabile @code{OFMT} e
-@cindex @code{print}, istruzione, variabile @code{OFMT} e
-@cindex istruzione @code{print}, variabile @code{OFMT} e
-@cindex variabile @code{OFS}
-@cindex @code{OFS}, variabile
-@cindex campo, separatori di
-@cindex separatori di campo
+@cindex funzione @subentry @code{sprintf()} (variabile) @code{OFMT} e
+@cindex @code{print} (istruzione) @subentry variabile @code{OFMT} e
+@cindex istruzione @subentry @code{print} @subentry @code{OFMT} (variabile) e
+@cindex variabile @subentry @code{OFS}
+@cindex @code{OFS} (variabile)
+@cindex campi @subentry separatore di
+@cindex separatore di campo
@item OFS
@`E il separatore dei campi in output (@pxref{Separatori di output}). @`E
ci@`o
che viene stampato in output per separare i campi stampati da un'istruzione
@code{print}.
Il suo valore di default @`e @w{@code{" "}}, una stringa costituita da un solo
spazio.
-@cindex @code{ORS}, variabile
-@cindex variabile @code{ORS}
+@cindex @code{ORS} (variabile)
+@cindex variabile @subentry @code{ORS}
@item ORS
Il separatore dei record in output. Viene stampato alla fine di ogni
istruzione @code{print}. Il suo valore di default @`e @code{"\n"},
il carattere di ritorno a capo.
(@xref{Separatori di output}.)
-@cindex @code{PREC}, variabile
-@cindex variabile @code{PREC}
+@cindex @code{PREC} (variabile)
+@cindex variabile @subentry @code{PREC}
@item PREC #
La precisione disponibile nei numeri in virgola mobile a precisione arbitraria,
per default 53 bit (@pxref{Impostare la precisione}).
-@cindex @code{ROUNDMODE}, variabile
-@cindex variabile @code{ROUNDMODE}
+@cindex @code{ROUNDMODE} (variabile)
+@cindex variabile @subentry @code{ROUNDMODE}
@item ROUNDMODE #
La modalit@`a di arrotondamento da usare per operazioni aritmetiche a
precisione
arbitraria svolte sui numeri, per default @code{"N"}
(@code{roundTiesToEven} nello standard
IEEE 754; @pxref{Impostare modo di arrotondare}).
-@cindex @code{RS}, variabile
-@cindex variabile @code{RS}
-@cindex separatori di record
-@cindex record, separatori di
+@cindex @code{RS} (variabile)
+@cindex variabile @subentry @code{RS}
+@cindex separatore di record
+@cindex record @subentry separatore di
@item @code{RS}
Il separatore tra record in input. Il suo valore di default @`e una stringa
contenente il solo carattere di ritorno a capo, il che significa che un record
in input
@@ -16171,10 +16279,10 @@ se @command{gawk} @`e in modalit@`a compatibile
(@pxref{Opzioni}),
@`e usato solo il primo carattere del valore di @code{RS}.
-@cindex @code{SUBSEP}, variabile
-@cindex variabile @code{SUBSEP}
-@cindex separatori di indici
-@cindex indici, separatori di
+@cindex @code{SUBSEP} (variabile)
+@cindex variabile @subentry @code{SUBSEP}
+@cindex separatore di indici
+@cindex indici di vettore @subentry separatore di
@item @code{SUBSEP}
Il separatore di indici. Ha il valore di default di
@code{"\034"} ed @`e usato per separare le parti di cui sono composti gli
indici
@@ -16183,11 +16291,11 @@ di un vettore multidimensionale. Quindi,
l'espressione
in realt@`a accede a @code{pippo["A\034B"]}
(@pxref{Vettori multidimensionali}).
-@cindex @command{gawk}, variabile @code{TEXTDOMAIN} in
-@cindex @code{TEXTDOMAIN}, variabile
-@cindex variabile @code{TEXTDOMAIN}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile
@code{TEXTDOMAIN}
-@cindex internazionalizzazione, localizzazione
+@cindex @command{gawk} @subentry variabile @subentry @code{TEXTDOMAIN} in
+@cindex @code{TEXTDOMAIN} (variabile)
+@cindex variabile @subentry @code{TEXTDOMAIN}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{TEXTDOMAIN}
+@cindex internazionalizzazione @subentry localizzazione
@item TEXTDOMAIN #
Usata per l'internazionalizzazione di programmi a livello di
@command{awk}. Imposta il dominio di testo (@dfn{text domain}) di default per
costanti stringa
@@ -16205,8 +16313,8 @@ Il valore di default di @code{TEXTDOMAIN} @`e
@code{"messages"}.
@node Variabili auto-assegnate
@subsection Variabili predefinite con cui @command{awk} fornisce informazioni
-@cindex predefinite, variabili, che forniscono informazioni
-@cindex variabili predefinite, che forniscono informazioni
+@cindex predefinita @subentry variabile @subentry che fornisce informazioni
+@cindex variabili @subentry predefinite @subentry che forniscono informazioni
Quella che segue @`e una lista in ordine alfabetico di variabili che
@command{awk} imposta automaticamente in determinate situazioni per
fornire informazioni a un programma.
@@ -16218,9 +16326,9 @@ modalit@`a compatibile (@pxref{Opzioni}), non hanno un
significato speciale:
@c @asis for docbook
@table @asis
-@cindex @code{ARGC}/@code{ARGV}, variabili
-@cindex argomenti, riga di comando
-@cindex riga di comando, argomenti
+@cindex @code{ARGC}/@code{ARGV} (variabili)
+@cindex argomenti @subentry riga di comando
+@cindex riga di comando @subentry argomenti
@item @code{ARGC}, @code{ARGV}
Gli argomenti della riga di comando disponibili ai programmi @command{awk}
sono memorizzati in un vettore di nome
@@ -16250,12 +16358,12 @@ contiene @samp{inventory-shipped} e @code{ARGV[2]}
contiene
dell'indice dell'ultimo elemento di @code{ARGV}, perch@'e gli elementi sono
numerati a partire da zero.
-@cindex convenzioni di programmazione, variabili @code{ARGC}/@code{ARGV}
+@cindex convenzioni di programmazione @subentry @code{ARGC}/@code{ARGV}
(variabili)
I nomi @code{ARGC} e @code{ARGV}, come pure la convenzione di indicizzare
il vettore da 0 a @code{ARGC} @minus{} 1, derivano dal modo in cui il
linguaggio C accede agli argomenti presenti sulla riga di comando.
-@cindex angolo buio, valore di @code{ARGV[0]}
+@cindex angolo buio @subentry valore di @code{ARGV[0]}
Il valore di @code{ARGV[0]} pu@`o variare da sistema a sistema.
Va anche notato che il programma @emph{non}
@`e incluso in @code{ARGV}, e non sono incluse neppure le eventuali opzioni di
@@ -16264,9 +16372,9 @@ Va anche notato che il programma @emph{non}
su come @command{awk} usa queste variabili.
@value{DARKCORNER}
-@cindex @code{ARGIND}, variabile
-@cindex variabile @code{ARGIND}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{ARGIND}
+@cindex @code{ARGIND} (variabile)
+@cindex variabile @subentry @code{ARGIND}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{ARGIND}
@item @code{ARGIND #}
L'indice in @code{ARGV} del file correntemente in elaborazione.
Ogni volta che @command{gawk} apre un nuovo @value{DF} per elaborarlo, imposta
@@ -16274,20 +16382,20 @@ Ogni volta che @command{gawk} apre un nuovo
@value{DF} per elaborarlo, imposta
Quando @command{gawk} sta elaborando i file in input, il confronto
@samp{FILENAME == ARGV[ARGIND]} @`e sempre verificato.
-@cindex file, elaborazione@comma{} variabile @code{ARGIND} e
+@cindex file @subentry elaborazione di @subentry variabile @code{ARGIND} e
Questa variabile @`e utile nell'elaborazione dei file; consente di stabilire
a che punto ci si trova nella lista
di @value{DF}, e anche di distinguere tra successive occorrenze dello stesso
@value{FN} sulla riga dei comandi.
-@cindex nomi di file, distinguere
+@cindex nomi @subentry di file @subentry distinguere
Anche se @`e possibile modificare il valore di @code{ARGIND} all'interno del
programma @command{awk}, @command{gawk} automaticamente lo imposta a un nuovo
valore quando viene aperto il file successivo.
-@cindex @code{ENVIRON}, vettore
-@cindex vettore @code{ENVIRON}
-@cindex variabili d'ambiente, nel vettore @code{ENVIRON}
+@cindex @code{ENVIRON} (vettore)
+@cindex vettore @subentry @code{ENVIRON}
+@cindex variabili d'ambiente @subentry nel vettore @code{ENVIRON}
@item @code{ENVIRON}
Un vettore associativo contenente i valori delle variabili d'ambiente.
Gli indici del vettore sono i nomi delle variabili d'ambiente; gli elementi
@@ -16328,11 +16436,11 @@ le variabili
@pxref{AWKLIBPATH (Variabile)}).
@end ifnotdocbook
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile
-@cindex variabile @code{ERRNO}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{ERRNO}
-@cindex gestione errori, variabile @code{ERRNO} e
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile)
+@cindex variabile @subentry @code{ERRNO}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{ERRNO}
+@cindex gestione errori @subentry variabile @code{ERRNO} e
@item @code{ERRNO #}
Se si verifica un errore di sistema durante una ridirezione per @code{getline},
durante una lettura per @code{getline} o durante un'operazione di
@@ -16359,9 +16467,9 @@ variabile C @code{errno}, @code{PROCINFO["errno"]}
sar@`a impostato al valore
di @code{errno}. Per errori non di sistema, @code{PROCINFO["errno"]} sar@`a
impostata al valore zero.
-@cindex @code{FILENAME}, variabile
-@cindex variabile @code{FILENAME}
-@cindex angolo buio, variabile @code{FILENAME}
+@cindex @code{FILENAME} (variabile)
+@cindex variabile @subentry @code{FILENAME}
+@cindex angolo buio @subentry variabile @subentry @code{FILENAME}
@item @code{FILENAME}
Il nome del file in input corrente. Quando non ci sono @value{DF}
sulla riga dei comandi, @command{awk} legge dallo standard input e
@@ -16383,16 +16491,16 @@ non ci si dovrebbe poter contare nei programmi.}
che l'uso di @code{getline} (@pxref{Getline}) all'interno di una regola
@code{BEGIN} pu@`o implicare l'assegnamento di un valore a @code{FILENAME}.
-@cindex @code{FNR}, variabile
-@cindex variabile @code{FNR}
+@cindex @code{FNR} (variabile)
+@cindex variabile @subentry @code{FNR}
@item @code{FNR}
Il numero del record corrente nel file corrente. @command{awk} incrementa
@code{FNR} ogni volta che legge un nuovo record (@pxref{Record}).
@command{awk} imposta nuovamente a zero @code{FNR} ogni volta che inizia a
leggere un nuovo file in input.
-@cindex @code{NF}, variabile
-@cindex variabile @code{NF}
+@cindex @code{NF} (variabile)
+@cindex variabile @subentry @code{NF}
@item @code{NF}
Il numero di campi nel corrente record in input.
@code{NF} @`e impostato ogni volta che si legge un nuovo record,
@@ -16405,10 +16513,10 @@ il funzionamento interno di @command{awk}. In
particolare, assegnamenti
a @code{NF} si possono usare per aggiungere o togliere campi dal
record corrente. @xref{Cambiare i campi}.
-@cindex @code{FUNCTAB}, vettore
-@cindex vettore @code{FUNCTAB}
-@cindex @command{gawk}, vettore @code{FUNCTAB} in
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{FUNCTAB}
+@cindex @code{FUNCTAB} (vettore)
+@cindex vettore @subentry @code{FUNCTAB}
+@cindex @command{gawk} @subentry vettore @subentry @code{FUNCTAB} in
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{FUNCTAB}
@item @code{FUNCTAB #}
Un vettore i cui indici e i corrispondenti valori sono i nomi di tutte le
funzioni predefinite, definite dall'utente ed estese, presenti nel programma.
@@ -16419,18 +16527,18 @@ Il tentativo di usare l'istruzione @code{delete} per
eliminare il vettore
ogni tentativo di impostare un elemento di @code{FUNCTAB}.
@end quotation
-@cindex @code{NR}, variabile
-@cindex variabile @code{NR}
+@cindex @code{NR} (variabile)
+@cindex variabile @subentry @code{NR}
@item @code{NR}
Il numero di record in input che @command{awk} ha elaborato dall'inizio
dell'esecuzione del programma
(@pxref{Record}).
@command{awk} incrementa @code{NR} ogni volta che legge un nuovo record.
-@cindex @command{gawk}, vettore @code{PROCINFO} in
-@cindex @code{PROCINFO}, vettore
-@cindex vettore @code{PROCINFO}
-@cindex differenze tra @command{awk} e @command{gawk}, vettore @code{PROCINFO}
+@cindex @command{gawk} @subentry vettore @subentry @code{PROCINFO} in
+@cindex @code{PROCINFO} (vettore)
+@cindex vettore @subentry @code{PROCINFO}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry vettore
@code{PROCINFO}
@item @code{PROCINFO #}
Gli elementi di questo vettore danno accesso a informazioni sul
programma @command{awk} in esecuzione.
@@ -16439,8 +16547,8 @@ sono sicuramente sempre disponibili:
@table @code
@item PROCINFO["argv"]
-@cindex argomenti, riga di comando
-@cindex riga di comando, argomenti
+@cindex argomenti @subentry riga di comando
+@cindex riga di comando @subentry argomenti
Il vettore @code{PROCINFO["argv"]} contiene tutti gli argomenti della riga di
comando (dopo che l'eventuale elaborazione di valutazione e ridirezione,
nelle piattaforme in cui ci@`o debba essere fatto a cura del programma), con
@@ -16460,7 +16568,7 @@ Si tenga presente che questo vettore @`e diverso dal
vettore standard
@code{ARGV} il quale non include quegli argomenti della riga di comando
che sono gi@`a stati elaborati da @command{gawk} (@pxref{ARGC e ARGV}).
-@cindex effettivo, @dfn{ID di gruppo} dell'utente di @command{gawk}
+@cindex effettivo @subentry @dfn{ID di gruppo} dell'utente di @command{gawk}
@item PROCINFO["egid"]
Il valore restituito dalla chiamata di sistema @code{getegid()}.
@@ -16485,7 +16593,7 @@ di input tramite API.
Il valore restituito dalla chiamata di sistema @code{getgid()} .
@item PROCINFO["identifiers"]
-@cindex programma, identificativi in un
+@cindex programma @subentry identificativi in un
@cindex identificativi in un programma
Un sottovettore, indicizzato dai nomi di tutti gli identificativi usati
all'interno del programma @command{awk}. Un @dfn{identificativo} @`e
@@ -16523,6 +16631,7 @@ vengono pi@`u aggiornati durante l'esecuzione del
programma.
@item PROCINFO["platform"]
@cindex piattaforma di esecuzione
+@cindex @code{PROCINFO} (vettore) @subentry ambiente di compilazione
Quest'elemento restituisce una stringa che indica la piattaforma
per la quale @command{gawk} @`e stato compilato. Il valore sar@`a
uno dei seguenti:
@@ -16567,8 +16676,8 @@ Assegnando un nuovo valore a questo elemento si cambia
quello di default.
Il valore restituito dalla chiamata di sistema @code{getuid()}.
@item PROCINFO["version"]
-@cindex versione di @command{gawk}
-@cindex @command{gawk}, versione di
+@cindex versione @subentry di @command{gawk}
+@cindex @command{gawk} @subentry versione di
La versione di @command{gawk}.
@end table
@@ -16580,19 +16689,19 @@ arbitraria
@table @code
@item PROCINFO["gmp_version"]
-@cindex versione della libreria GNU MP
+@cindex versione @subentry della libreria GNU MP
La versione della libreria GNU MP.
-@cindex versione della libreria GNU MPFR
+@cindex versione @subentry della libreria GNU MPFR
@item PROCINFO["mpfr_version"]
La versione della libreria GNU MPFR.
@item PROCINFO["prec_max"]
-@cindex precisione massima consentita dalla libreria MPFR
+@cindex precisione @subentry massima consentita dalla libreria MPFR
La massima precisione consentita da MPFR.
@item PROCINFO["prec_min"]
-@cindex precisione minima richiesta dalla libreria MPFR
+@cindex precisione @subentry minima richiesta dalla libreria MPFR
La precisione minima richiesta da MPFR.
@end table
@@ -16609,15 +16718,15 @@ di @command{gawk} prevede il caricamento dinamico di
funzioni di estensione
@table @code
@item PROCINFO["api_major"]
-@cindex versione dell'estensione API @command{gawk}
-@cindex estensione API, numero di versione
+@cindex versione @subentry dell'estensione API @command{gawk}
+@cindex estensione API @subentry numero di versione
La versione principale dell'estensione API.
@item PROCINFO["api_minor"]
La versione secondaria dell'estensione API.
@end table
-@cindex gruppi supplementari Unix con @command{gawk}
+@cindex gruppi @subentry Unix supplementari visualizzati in @command{gawk}
Su alcuni sistemi, ci possono essere elementi nel vettore, da @code{"group1"}
fino a @code{"group@var{N}"}. @var{N} @`e il numero di
gruppi supplementari che il processo [Unix] possiede. Si usi l'operatore
@@ -16670,8 +16779,8 @@ pi@`u avanti; si veda
@ref{Controllare visita}.
@end table
-@cindex @code{RLENGTH}, variabile
-@cindex variabile @code{RLENGTH}
+@cindex @code{RLENGTH} (variabile)
+@cindex variabile @subentry @code{RLENGTH}
@item @code{RLENGTH}
La lunghezza della sottostringa individuata dalla funzione
@code{match()}
@@ -16681,8 +16790,8 @@ Il suo
valore @`e la lunghezza della stringa individuata, oppure @minus{}1 se non @`e
stata trovata alcuna corrispondenza.
-@cindex @code{RSTART}, variabile
-@cindex variabile @code{RSTART}
+@cindex @code{RSTART} (variabile)
+@cindex variabile @subentry @code{RSTART}
@item @code{RSTART}
L'indice, in caratteri, da cui parte la sottostringa che @`e individuata dalla
funzione @code{match()}
@@ -16692,19 +16801,19 @@ Il suo
valore @`e la posizione nella stringa da cui inizia la sottostringa
individuata, oppure zero, se non @`e stata trovata alcuna corrispondenza.
-@cindex @command{gawk}, variabile @code{RT} in
-@cindex @code{RT}, variabile
-@cindex variabile @code{RT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabili
@code{RS}/@code{RT}
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex variabile @subentry @code{RT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili
@code{RS}/@code{RT}
@item @code{RT #}
Il testo in input che corrisponde al testo individuato da @code{RS},
il separatore di record. Questa variabile viene impostata dopo aver letto
ciascun record.
-@cindex @command{gawk}, vettore @code{SYMTAB} in
-@cindex @code{SYMTAB}, vettore
-@cindex vettore @code{SYMTAB}
-@cindex differenze tra @command{awk} e @command{gawk}, vettore @code{SYMTAB}
+@cindex @command{gawk} @subentry vettore @subentry @code{SYMTAB} in
+@cindex @code{SYMTAB} (vettore)
+@cindex vettore @subentry @code{SYMTAB}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry vettore
@code{SYMTAB}
@item @code{SYMTAB #}
Un vettore i cui indici sono i nomi di tutte le variabili globali e i vettori
definiti nel programma. @code{SYMTAB} rende visibile al
@@ -16785,11 +16894,11 @@ sono disponibili come elementi all'interno del
vettore @code{SYMTAB}.
@end table
@sidebar Modificare @code{NR} e @code{FNR}
-@cindex @code{NR}, variabile, modifica di
-@cindex variabile @code{NR}, modifica di
-@cindex @code{FNR}, variabile, modifica di
-@cindex variabile @code{FNR}, modifica di
-@cindex angolo buio, variabili @code{FNR}/@code{NR}
+@cindex @code{NR} (variabile) @subentry modifica di
+@cindex variabile @subentry @code{NR} @subentry modifica di
+@cindex @code{FNR} (variabile) @subentry modifica di
+@cindex variabile @subentry @code{FNR} @subentry modifica di
+@cindex angolo buio @subentry variabile @subentry @code{FNR}/@code{NR}
@command{awk} incrementa le variabili @code{NR} e @code{FNR}
ogni volta che legge un record, invece che impostarle al valore assoluto del
numero di record letti. Ci@`o significa che un programma pu@`o
@@ -16820,10 +16929,10 @@ di @code{FILENAME}.
@node ARGC e ARGV
@subsection Usare @code{ARGC} e @code{ARGV}
-@cindex @code{ARGC}/@code{ARGV}, variabili, come usarle
-@cindex variabili @code{ARGC}/@code{ARGV}, come usarle
-@cindex argomenti, riga di comando
-@cindex riga di comando, argomenti
+@cindex @code{ARGC}/@code{ARGV} (variabili) @subentry come usarle
+@cindex variabile @subentry @code{ARGC}/@code{ARGV} @subentry utilizzo
+@cindex argomenti @subentry riga di comando
+@cindex riga di comando @subentry argomenti
@iftex
La
@@ -16945,7 +17054,7 @@ BEGIN @{
@}
@end example
-@cindex differenze tra @command{awk} e @command{gawk}, variabili
@code{ARGC}/@code{ARGV}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili
@code{ARGC}/@code{ARGV}
Terminare le opzioni di @command{awk} con @option{--} non @`e
necessario in @command{gawk}. A meno che non si specifichi @option{--posix},
@command{gawk} inserisce, senza emettere messaggi, ogni opzione non
@@ -17137,8 +17246,8 @@ effettivamente memorizzato all'inizio di un blocco di
memoria. L'indice uno
specifica il secondo elemento, che @`e memorizzato subito dopo il primo
elemento,
e cos@`{@dotless{i}} via. @`E impossibile aggiungere ulteriori elementi al
vettore, perch@'e
esso pu@`o contenere solo il numero di elementi dichiarato.
-(Alcuni linguaggi consentono indici iniziali e finali arbitrari---p.es.,
-@samp{15 .. 27}---per@`o la dimensione del vettore rimane fissa una volta che
+(Alcuni linguaggi consentono indici iniziali e finali arbitrari --- p.es.,
+@samp{15 .. 27} --- per@`o la dimensione del vettore rimane fissa una volta che
il vettore sia stato dichiarato.)
@c 1/2015: Do not put the numeric values into @code. Array element
@@ -17179,10 +17288,10 @@ Vengono memorizzati solo i valori; gli indici sono
definiti implicitamente
dall'ordine dei valori. Qui, 8 @`e il valore il cui indice @`e zero, perch@'e 8
appare nella posizione con zero elementi prima di essa.
-@cindex vettori, indicizzazione
-@cindex indicizzare i vettori
-@cindex associativi, vettori
-@cindex vettori associativi
+@cindex vettori @subentry indicizzazione di
+@cindex indici di vettore
+@cindex associativi @subentry vettori
+@cindex vettori @subentry associativi
I vettori in @command{awk} non sono di questo tipo: sono invece
@dfn{associativi}.
Ci@`o significa che ogni vettore @`e un insieme di coppie, ognuna costituita
@@ -17305,8 +17414,8 @@ decimo elemento il cui valore sia @w{@code{"numero
dieci"}}. Il risultato sar@`
@end docbook
@noindent
-@cindex sparsi, vettori
-@cindex vettori sparsi
+@cindex sparsi @subentry vettori
+@cindex vettori @subentry sparsi
Ora il vettore @`e @dfn{sparso}, il che significa semplicemente che non sono
usati alcuni indici. Ha gli elementi 0, 1, 2, 3 e 10, ma mancano gli
elementi 4, 5, 6, 7, 8 e 9.
@@ -17375,11 +17484,11 @@ indici dei vettori; questo verr@`a trattato in
maggior dettaglio nella
Qui sopra, il numero @code{1} non @`e tra doppi apici, perch@'e @command{awk}
lo converte automaticamente in una stringa.
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
-@cindex maiuscolo/minuscolo, distinzione, indici dei vettori e
-@cindex vettori, ordinamento, variabile @code{IGNORECASE} e
-@cindex @code{IGNORECASE}, variabile, indici dei vettori e
-@cindex variabile @code{IGNORECASE}, indici dei vettori e
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
+@cindex maiuscolo/minuscolo @subentry distinzione @subentry negli indici dei
vettori
+@cindex vettori @subentry ordinamento @subentry variabile @code{IGNORECASE} e
+@cindex @code{IGNORECASE} (variabile) @subentry indici dei vettori e
+@cindex variabile @subentry @code{IGNORECASE} @subentry indici di vettore e
Il valore di @code{IGNORECASE} non ha alcun effetto sull'indicizzazione dei
vettori. Lo stesso valore di stringa usato per memorizzare un elemento di un
vettore pu@`o essere usato per richiamarlo.
@@ -17393,9 +17502,9 @@ un elemento @`e indipendente dal numero di elementi nel
vettore.
@node Visitare elementi
@subsection Come esaminare un elemento di un vettore
-@cindex vettori, esaminare elementi
-@cindex vettore, elementi di un
-@cindex elementi di un vettore
+@cindex vettori @subentry elementi @subentry esaminare gli
+@cindex vettori @subentry elementi
+@cindex elementi @subentry di vettore
Il modo principale di usare un vettore @`e quello di esaminare uno dei suoi
elementi. Un @dfn{riferimento al vettore} @`e un'espressione come questa:
@@ -17416,16 +17525,16 @@ Il valore del riferimento al vettore @`e il valore
corrente di quell'elemento
del vettore. Per esempio, @code{pippo[4.3]} @`e un'espressione che richiama
l'elemento del vettore @code{pippo} il cui indice @`e @samp{4.3}.
-@cindex vettori, elementi non assegnati
-@cindex elementi di vettore non assegnati
-@cindex elementi di vettore vuoti
+@cindex vettori @subentry elementi @subentry non assegnati
+@cindex elementi @subentry di vettore @subentry non assegnati
+@cindex elementi @subentry di vettore @subentry vuoti
Un riferimento a un elemento di un vettore il cui indice non esiste ancora
restituisce un valore uguale a @code{""}, la stringa nulla. Questo comprende
elementi a cui non @`e stato assegnato un valore ed elementi che sono stati
eliminati (@pxref{Cancellazione}).
-@cindex elementi inesistenti di un vettore
-@cindex vettori, elementi che non esistono
+@cindex elementi @subentry di vettore @subentry inesistenti
+@cindex vettori @subentry elementi @subentry inesistenti
@quotation NOTA
Un riferimento a un elemento inesistente crea @emph{automaticamente}
quell'elemento di vettore, con la stringa nulla come valore. (In certi casi,
@@ -17447,7 +17556,7 @@ stringa vuota come valore @`e un'operazione valida
(anche se un po' insolita).
@end quotation
@c @cindex arrays, @code{in} operator and
-@cindex @code{in}, operatore, verificare se un elemento esiste in un vettore
+@cindex @code{in} (operatore) @subentry verificare se un elemento esiste in un
vettore
Per determinare se un elemento con un dato indice esiste in un vettore,
si usi la seguente espressione:
@@ -17455,7 +17564,7 @@ si usi la seguente espressione:
@var{indice} in @var{vettore}
@end example
-@cindex effetti collaterali, indicizzazione di vettori
+@cindex effetti collaterali @subentry indicizzazione di vettori
@noindent
Quest'espressione verifica se lo specifico indice @var{indice} esiste, senza
l'effetto collaterale di creare quell'elemento nel caso che esso non sia
@@ -17489,8 +17598,8 @@ if (frequenze[2] != "")
@node Impostare elementi
@subsection Assegnare un valore a elementi di un vettore
-@cindex vettori, elementi, assegnare valori
-@cindex elementi di vettori, assegnare valori
+@cindex vettori @subentry elementi @subentry assegnare valori
+@cindex elementi @subentry di vettore @subentry assegnare valori a
Agli elementi di un vettore possono essere assegnati valori proprio come
alle variabili di @command{awk}:
@@ -17507,7 +17616,7 @@ a quell'elemento del vettore.
@node Esempio di vettore
@subsection Esempio semplice di vettore
-@cindex vettori, un esempio sull'uso
+@cindex vettori @subentry esempio sull'uso
Il seguente programma prende una lista di righe, ognuna delle quali inizia con
un numero di riga, e le stampa in ordine di numero di riga. I numeri di riga
@@ -17584,10 +17693,10 @@ END @{
@node Visitare un intero vettore
@subsection Visitare tutti gli elementi di un vettore
-@cindex elementi di vettori, visitare
-@cindex visitare vettori
-@cindex vettori, visitare
-@cindex cicli, @code{for}, visita di un vettore
+@cindex elementi @subentry di vettore @subentry visitare
+@cindex visitare @subentry vettori
+@cindex vettori @subentry visitare
+@cindex cicli @subentry @code{for} @subentry visita di un vettore
Nei programmi che usano vettori, @`e spesso necessario usare un ciclo che
esegue un'azione su ciascun elemento di un vettore. In altri linguaggi, dove
@@ -17607,14 +17716,14 @@ for (@var{variabile} in @var{vettore})
@end example
@noindent
-@cindex @code{in}, operatore, uso in cicli
-@cindex operatore @code{in}, uso in cicli
+@cindex @code{in} (operatore) @subentry uso in cicli
+@cindex operatore @subentry @code{in} @subentry uso in cicli
Questo ciclo esegue @var{corpo} una volta per ogni indice in @var{vettore} che
il programma ha usato precedentemente, con la variabile @var{variabile}
impostata a quell'indice.
-@cindex vettori, istruzione @code{for} e
-@cindex @code{for}, istruzione, esecuzione di cicli su un vettore
+@cindex vettori @subentry istruzione @code{for} e
+@cindex @code{for} (istruzione) @subentry esecuzione di cicli su un vettore
Il seguente programma usa questa forma dell'istruzione @code{for}. La
prima regola visita i record in input e tiene nota di quali parole appaiono
(almeno una volta) nell'input, memorizzando un 1 nel vettore @code{usate} con
@@ -17652,10 +17761,10 @@ END @{
@xref{Programma utilizzo parole}
per un esempio di questo tipo pi@`u dettagliato.
-@cindex vettori, elementi di, ordine di accesso da parte dell'operatore
@code{in}
-@cindex elementi di vettori, ordine di accesso da parte dell'operatore
@code{in}
-@cindex @code{in}, operatore, ordine di accesso dei vettori
-@cindex operatore @code{in}, ordine di accesso dei vettori
+@cindex vettori @subentry elementi @subentry ordine di accesso da parte
dell'operatore @code{in}
+@cindex elementi @subentry di vettore @subentry ordine di accesso da parte
dell'operatore @code{in}
+@cindex @code{in} (operatore) @subentry ordine di accesso dei vettori
+@cindex operatore @subentry @code{in} @subentry ordine di accesso dei vettori
L'ordine nel quale gli elementi del vettore sono esaminati da quest'istruzione
@`e determinato dalla disposizione interna degli elementi del vettore
all'interno
di @command{awk} e nell'@command{awk} standard non pu@`o essere controllato
@@ -17723,8 +17832,8 @@ determina l'ordine in cui il vettore viene attraversato.
Quest'ordine normalmente @`e basato sull'implementazione interna dei vettori
e varia da una versione di @command{awk} alla successiva.
-@cindex vettori, ordine di visita, controllo dell'
-@cindex controllare l'ordine di visita dei vettori
+@cindex vettori @subentry ordine di visita @subentry controllo dell'
+@cindex controllo @subentry ordine di visita dei vettori
Spesso, tuttavia, servirebbe fare qualcosa di semplice, come
``visitare il vettore confrontando gli indici in ordine crescente,''
o ``visitare il vettore confrontando i valori in ordine decrescente.''
@@ -17742,7 +17851,7 @@ dall'utente, da usare per il confronto tra gli elementi
di un vettore. Questa
funzionalit@`a avanzata verr@`a descritta in seguito in @ref{Ordinamento di
vettori}.
@end itemize
-@cindex @code{PROCINFO}, valori di @code{sorted_in}
+@cindex @code{PROCINFO} (vettore) @subentry valori di @code{sorted_in}
Sono disponibili i seguenti valori speciali per @code{PROCINFO["sorted_in"]}:
@table @code
@@ -17884,11 +17993,11 @@ dei vettori; si veda @ref{Funzioni di ordinamento di
vettori}.
@node Indici numerici di vettore
@section Usare numeri per indicizzare i vettori
-@cindex numeri, come indici di vettore
-@cindex indici di vettori, numeri come
-@cindex vettori, indici numerici di
-@cindex variabile @code{CONVFMT}, indici di vettore e
-@cindex @code{CONVFMT}, variabile, indici di vettore e
+@cindex numeri @subentry come indici di vettore
+@cindex indici di vettore @subentry numeri come
+@cindex vettori @subentry indici @subentry numerici
+@cindex variabile @subentry @code{CONVFMT} @subentry indici di vettore e
+@cindex @code{CONVFMT} (variabile) @subentry indici di vettore e
Un aspetto importante da ricordare riguardo ai vettori @`e che
@emph{gli indici dei vettori sono sempre stringhe}.
Quando un valore numerico @`e usato come indice,
@@ -17916,12 +18025,13 @@ indicizza @code{dati} col valore di tipo stringa
@code{"12.153"}
Quindi, all'elemento del vettore @code{dati["12.153"]} @`e assegnato il valore
uno. Il programma cambia poi
il valore di @code{CONVFMT}. La verifica @samp{(xyz in dati)} genera un nuovo
-valore di stringa da @code{xyz}---questa volta @code{"12.15"}---perch@'e il
+valore di stringa da @code{xyz} --- questa volta @code{"12.15"} --- perch@'e il
valore di @code{CONVFMT} consente solo due cifre decimali. Questa
verifica d@`a esito negativo, perch@'e @code{"12.15"} @`e diverso da
@code{"12.153"}.
-@cindex convertire numeri interi che sono indici di vettore
-@cindex numeri interi, indici di vettore
+@cindex conversione @subentry di numeri interi che sono indici di vettore
+@cindex numeri @subentry interi @subentry come indici di vettore
+@cindex interi @subentry indici di vettore
Secondo le regole di conversione
(@pxref{Conversione}), i valori numerici interi
vengono convertiti in stringhe sempre come interi, indipendentemente dal
@@ -17957,10 +18067,10 @@ effetti difficili da individuare sui programmi.
@node Indici non inizializzati
@section Usare variabili non inizializzate come indici
-@cindex variabili non inizializzate, come indici di vettore
-@cindex non inizializzate, variabili, come indici di vettore
-@cindex indici di vettore, variabili non inizializzate come
-@cindex vettori, indici, variabili non inizializzate come
+@cindex variabili @subentry non inizializzate @subentry come indici di vettore
+@cindex non inizializzate @subentry variabili @subentry come indici di vettore
+@cindex indici di vettore @subentry variabili non inizializzate come
+@cindex vettori @subentry indici @subentry variabili non inizializzate come
Supponiamo che sia necessario scrivere un programma
per stampare i dati di input in ordine inverso.
Un tentativo ragionevole per far ci@`o (con qualche dato di
@@ -18004,12 +18114,12 @@ Qui, @samp{++} forza @code{righe} a essere di tipo
numerico, rendendo
quindi il ``vecchio valore'' uno zero numerico. Questo viene poi convertito
in @code{"0"} come l'indice del vettore.
-@cindex indici di vettore, stringhe nulle come
-@cindex nulle, stringhe, come indici di vettore
-@cindex stringhe nulle, come indici di vettore
-@cindex angolo buio, indici di vettori
-@cindex @dfn{lint}, controlli, indici di vettori
-@cindex controlli @dfn{lint}, indici di vettori
+@cindex indici di vettore @subentry stringhe nulle come
+@cindex nulle @subentry stringhe @subentry come indici di vettore
+@cindex stringa nulla @subentry come indice di vettore
+@cindex angolo buio @subentry indici di vettori
+@cindex @dfn{lint} @subentry controlli @subentry indici di vettori
+@cindex controllo @subentry @dfn{lint} @subentry indici di vettori
Anche se la cosa pu@`o sembrare strana, la stringa nulla
(@code{""}) @`e un indice di vettore valido.
@value{DARKCORNER}
@@ -18019,11 +18129,11 @@ come indice.
@node Cancellazione
@section L'istruzione @code{delete}
-@cindex @code{delete}, istruzione
-@cindex istruzione @code{delete}
-@cindex eliminare elementi di vettori
-@cindex vettori, elementi, eliminazione di
-@cindex elementi di vettori, eliminazione di
+@cindex @code{delete} (istruzione)
+@cindex istruzione @subentry @code{delete}
+@cindex eliminare @subentry elementi di vettori
+@cindex vettori @subentry elementi @subentry eliminazione di
+@cindex elementi @subentry di vettore @subentry eliminazione di
Per rimuovere un singolo elemento da un vettore si usa l'istruzione
@code{delete}:
@@ -18055,8 +18165,8 @@ if (4 in pippo)
print "Questo non verr@`a mai stampato"
@end example
-@cindex nulle, stringhe, eliminazione di elementi di un vettore e
-@cindex stringhe nulle, eliminazione di elementi di un vettore e
+@cindex nulle @subentry stringhe @subentry eliminazione di elementi di un
vettore e
+@cindex stringa nulla @subentry eliminazione di elementi di un vettore e
@`E importante notare che eliminare un elemento @emph{non} @`e la stessa cosa
che assegnargli un valore nullo (la stringa vuota, @code{""}).
Per esempio:
@@ -18069,21 +18179,21 @@ if (4 in pippo)
@end group
@end example
-@cindex @dfn{lint}, controlli, elementi di vettori
-@cindex controlli @dfn{lint}, elementi di vettori
-@cindex elementi di vettori, controlli @dfn{lint} per
+@cindex @dfn{lint} @subentry controlli @subentry elementi di vettori
+@cindex controllo @subentry @dfn{lint} @subentry elementi di vettori
+@cindex elementi @subentry di vettore @subentry controlli @dfn{lint} per
Non @`e un errore eliminare un elemento che non esiste.
Tuttavia, se viene data l'opzione @option{--lint} sulla riga di comando
(@pxref{Opzioni}),
@command{gawk} emette un messaggio di avvertimento quando viene eliminato un
elemento che non @`e presente in un vettore.
-@cindex comuni, estensioni, @code{delete} per eliminare interi vettori
-@cindex estensioni comuni@comma{} @code{delete} per eliminare interi vettori
-@cindex vettori, eliminare l'intero contenuto
-@cindex eliminare interi vettori
-@cindex @code{delete}, @var{vettore}
-@cindex differenze tra @command{awk} e @command{gawk}, elementi dei vettori,
eliminazione
+@cindex comuni @subentry estensioni @subentry @code{delete} per eliminare
interi vettori
+@cindex estensioni comuni @subentry @code{delete} per eliminare interi vettori
+@cindex vettori @subentry eliminare l'intero contenuto
+@cindex eliminare @subentry interi vettori
+@cindex @code{delete} (istruzione) @subentry eliminare un elemento di un
vettore
+@cindex differenze tra @command{awk} e @command{gawk} @subentry elementi dei
vettori @subentry eliminazione
Tutti gli elementi di un vettore possono essere eliminati con una singola
istruzione omettendo l'indice nell'istruzione @code{delete},
in questo modo:
@@ -18101,7 +18211,7 @@ Questa forma dell'istruzione @code{delete} @`e ammessa
anche
da BWK @command{awk} e da @command{mawk}, e anche da
diverse altre implementazioni.
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
@quotation NOTA
Per molti anni, l'uso di @code{delete} senza un indice era un'estensione
comune. A settembre 2012 si @`e deciso di includerla nello
@@ -18109,7 +18219,7 @@ standard POSIX. Si veda
@uref{http://austingroupbugs.net/view.php?id=544,
il sito dell'Austin Group}.
@end quotation
-@cindex portabilit@`a, eliminazione di elementi di un vettore
+@cindex portabilit@`a @subentry eliminazione di elementi di un vettore
@cindex Brennan, Michael
La seguente istruzione fornisce un modo portabile, anche se non evidente,
per svuotare un vettore:@footnote{Un ringraziamento a Michael
@@ -18119,8 +18229,8 @@ Brennan per la segnalazione.}
split("", vettore)
@end example
-@cindex @code{split()}, funzione, eliminazione di elementi di vettori
-@cindex funzione @code{split()}, eliminazione di elementi di vettori
+@cindex @code{split()} (funzione) @subentry eliminazione di elementi di vettori
+@cindex funzione @subentry @code{split()} @subentry eliminazione di elementi
di vettori
La funzione @code{split()}
(@pxref{Funzioni per stringhe})
dapprima svuota il vettore indicato. La chiamata chiede di dividere
@@ -18146,9 +18256,9 @@ a = 3
* Visitare vettori multidimensionali:: Visitare vettori multidimensionali.
@end menu
-@cindex indici di vettori multidimensionali
-@cindex vettori multidimensionali
-@cindex multidimensionali, vettori
+@cindex indici di vettore @subentry multidimensionale
+@cindex vettori @subentry multidimensionali
+@cindex multidimensionali @subentry vettori
Un @dfn{vettore multidimensionale} @`e un vettore in cui un elemento @`e
identificato da un insieme di indici invece che da un indice singolo. Per
esempio, un vettore bidimenisonale richiede due indici. Il modo consueto (in
@@ -18156,8 +18266,8 @@ molti linguaggi, compreso @command{awk}) per far
riferimento a un elemento di
un vettore multidimensionale chiamato @code{griglia} @`e con
@code{griglia[@var{x},@var{y}]}.
-@cindex @code{SUBSEP}, variabile, vettori multidimensionali e
-@cindex variabile @code{SUBSEP}, vettori multidimensionali e
+@cindex @code{SUBSEP} (variabile) @subentry vettori multidimensionali e
+@cindex variabile @subentry @code{SUBSEP} @subentry vettori multidimensionali e
I vettori multidimensionali sono resi disponibili in @command{awk} attraverso
la concatenazione di pi@`u indici in una stringa;
@command{awk} converte gli indici in stringhe
@@ -18189,7 +18299,7 @@ possono portare a stringhe risultanti ambigue.
Supponendo che
@w{@samp{pippo["a", "b@@c"]}} risultano indistinguibili perch@'e entrambi
sarebbero in realt@`a memorizzati come @samp{pippo["a@@b@@c"]}.
-@cindex @code{in}, operatore, verificare se un elemento esiste in un vettore
multidimensionale
+@cindex @code{in} (operatore) @subentry verificare se un elemento esiste in un
vettore multidimensionale
Per verificare se una determinata sequenza di indici esiste in un vettore
multidimensionale, si usa lo stesso operatore (@code{in}) che viene usato
per i vettori monodimensionali. Si scrive l'intera sequenza di indici tra
@@ -18258,9 +18368,9 @@ vettore ``multidimensionale''. Non ce ne pu@`o essere
una, perch@'e
vettori o elementi multidimensionali: c'@`e solo una modalit@`a
multidimensionale per @emph{accedere} a un vettore.
-@cindex indici di vettori multidimensionali, visitare gli
-@cindex vettori, multidimensionali, visitare
-@cindex visitare vettori multidimensionali
+@cindex indici di vettore @subentry multidimensionale @subentry visitare gli
+@cindex vettori @subentry multidimensionali @subentry visitare
+@cindex visitare @subentry vettori multidimensionali
Comunque, se un programma ha un vettore al quale si accede sempre in
modalit@`a multidimensionale, si pu@`o ottenere il risultato di visitarlo
combinando l'istruzione di visita @code{for}
@@ -18304,7 +18414,7 @@ La sequenza originale degli indici separati @`e
ripristinata.
@node Vettori di vettori
@section Vettori di vettori
-@cindex vettori di vettori
+@cindex vettori @subentry di vettori
@command{gawk} migliora l'accesso ai vettori multidimensionali di
@command{awk} standard e mette a disposizione dei veri vettori di vettori.
@@ -18538,8 +18648,8 @@ di un vettore @`e esso stesso un sottovettore.
@node Funzioni
@chapter Funzioni
-@cindex funzioni predefinite
-@cindex predefinite, funzioni
+@cindex funzione @subentry predefinita
+@cindex predefinita @subentry funzione
Questo @value{CHAPTER} descrive le funzioni predefinite di @command{awk},
che sono di tre tipi: numeriche, di stringa, e di I/O.
@command{gawk} mette a disposizione ulteriori tipi di funzioni
@@ -18601,8 +18711,8 @@ si scrive il nome della funzione seguito dai suoi
argomenti racchiusi
tra parentesi. Per esempio, @samp{atan2(y + z, 1)}
@`e una chiamata alla funzione @code{atan2()} e ha due argomenti.
-@cindex convenzioni di programmazione, nelle chiamate di funzione
-@cindex spazio bianco, nelle chiamate di funzione
+@cindex convenzioni di programmazione @subentry nelle chiamate di funzione
+@cindex spazio bianco @subentry nelle chiamate di funzione
La presenza di spazi bianchi tra il nome della funzione predefinita
e la parentesi aperta @`e consentita, ma @`e buona norma quella di evitare
di inserire spazi bianchi in quella posizione.
@@ -18611,10 +18721,10 @@ fra nome funzione e aperta parentesi,
ed @`e pi@`u semplice evitare errori seguendo una semplice convenzione che
resta sempre valida: non inserire spazi dopo il nome di una funzione.
-@cindex risoluzione di problemi, @command{gawk}, errori fatali@comma{}
argomenti di funzione e
-@cindex problemi, risoluzione di, @command{gawk}, errori fatali@comma{}
argomenti di funzione e
-@cindex @command{gawk}, argomenti di funzione e
-@cindex differenze tra @command{awk} e @command{gawk}, argomenti di funzione
(@command{gawk})
+@cindex risoluzione di problemi @subentry @command{gawk} @subentry errori
fatali, argomenti di funzione e
+@cindex problemi @subentry risoluzione di @subentry @command{gawk}, errori
fatali, argomenti di funzione e
+@cindex @command{gawk} @subentry argomenti di funzione e
+@cindex differenze tra @command{awk} e @command{gawk} @subentry argomenti di
funzione (@command{gawk})
Ogni funzione predefinita accetta un certo numero di argomenti.
In alcuni casi, gli argomenti possono essere omessi. I valori di default per
gli argomenti omessi variano
@@ -18634,9 +18744,9 @@ i = 4
j = sqrt(i++)
@end example
-@cindex ordine di valutazione, funzioni
-@cindex funzioni predefinite, ordine di valutazione
-@cindex predefinite, funzioni, ordine di valutazione
+@cindex ordine di valutazione @subentry funzioni
+@cindex funzioni @subentry predefinite @subentry ordine di valutazione
+@cindex predefinita @subentry funzione @subentry ordine di valutazione
@noindent
la variabile @code{i} @`e incrementata al valore cinque prima di chiamare
la funzione @code{sqrt()} alla quale viene fornito come parametro il valore
@@ -18659,8 +18769,8 @@ funzione @code{atan2()} @`e chiamata con i due
argomenti 11 e 10.
@node Funzioni numeriche
@subsection Funzioni numeriche
-@cindex funzioni numeriche
-@cindex numeriche, funzioni
+@cindex funzioni @subentry numeriche
+@cindex numeriche @subentry funzioni
La seguente lista descrive tutte le
funzioni predefinite che hanno a che fare con i numeri.
@@ -18691,7 +18801,7 @@ uso.
@item @code{int(@var{x})}
@cindexawkfunc{int}
-@cindex arrotondamento all'intero pi@`u vicino
+@cindex arrotondare @subentry all'intero pi@`u vicino
Restituisce l'intero pi@`u vicino a @var{x}, situato tra @var{x} e zero,
troncato togliendo i decimali.
Per esempio, @code{int(3)} @`e 3, @code{int(3.9)} @`e 3, @code{int(-3.9)}
@@ -18700,7 +18810,7 @@ Per esempio, @code{int(3)} @`e 3, @code{int(3.9)} @`e
3, @code{int(-3.9)}
@ifset INTDIV
@item @code{intdiv0(@var{numeratore}, @var{denominatore}, @var{risultato})}
@cindexawkfunc{intdiv0}
-@cindex funzione @code{intdiv0}
+@cindex funzione @subentry @code{intdiv0}
Esegue una divisione tra numeri interi, simile alla funzione standard C
@code{div}. Dapprima, il @code{numeratore} e il
@code{denominatore} vengono troncati, eliminando la parte decimale,
@@ -18735,7 +18845,7 @@ sia negativo.
@cindex Beebe, Nelson H.F.@:
@item @code{rand()}
@cindexawkfunc{rand}
-@cindex numeri casuali, funzioni @code{rand()}/@code{srand()}
+@cindex numeri @subentry casuali @subentry funzioni
@code{rand()}/@code{srand()}
Restituisce un numero casuale. I valori di @code{rand()} sono
uniformemente distribuiti tra zero e uno.
Il valore potrebbe essere zero ma non @`e mai uno.@footnote{La versione C di
@@ -18784,9 +18894,9 @@ function roll(n) @{ return 1 + int(rand() * n) @}
@}
@end example
-@cindex inizializzazione generazione di numeri casuali
-@cindex numeri casuali, inizializzazione generazione di
-@cindex numeri casuali, seme di
+@cindex inizializzazione @subentry della generazione di numeri casuali
+@cindex numeri @subentry casuali @subentry inizializzazione della generazione
di
+@cindex numeri @subentry casuali @subentry seme di
@quotation ATTENZIONE
Nella maggior parte delle implementazioni di @command{awk}, compreso
@command{gawk},
@@ -18850,7 +18960,7 @@ a seconda delle implementazioni @command{awk}.
@node Funzioni per stringhe
@subsection Funzioni di manipolazione di stringhe
-@cindex funzioni di manipolazione di stringhe
+@cindex funzioni @subentry di manipolazione di stringhe
Le funzioni in questa @value{SECTION} leggono o modificano il testo di
una o pi@`u stringhe.
@@ -18898,13 +19008,13 @@ compatibile (@pxref{Opzioni}):
@item @code{asort(}@var{sorgente} [@code{,} @var{destinazione} [@code{,}
@var{come} ] ]@code{) #}
@itemx @code{asorti(}@var{sorgente} [@code{,} @var{destinazione} [@code{,}
@var{come} ] ]@code{) #}
@cindexgawkfunc{asorti}
-@cindex vettori, ordinamento dei
-@cindex ordinamento di vettori
-@cindex vettori, determinare il numero degli elementi
+@cindex vettori @subentry ordinamento
+@cindex ordinamento @subentry di vettori
+@cindex vettori @subentry determinare il numero degli elementi
@cindexgawkfunc{asort}
-@cindex ordinamento vettori per indici
-@cindex vettori, ordinamento per indici
-@cindex indici di vettori, ordinamento per
+@cindex ordinamento @subentry di vettori @subentry in base agli indici
+@cindex vettori @subentry ordinamento @subentry in base agli indici
+@cindex indici di vettore @subentry ordinamento in base agli
Queste due funzioni sono abbastanza simili, e quindi sono descritte
insieme.
@@ -18924,7 +19034,7 @@ opzionale @var{destinazione},
@var{sorgente} @`e copiato in @var{destinazione}. @var{destinazione}
viene quindi ordinato, lasciando immodificati gli indici di @var{sorgente}.
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
Nel confronto tra stringhe, la variabile @code{IGNORECASE} influenza
l'ordinamento
(@pxref{Funzioni di ordinamento di vettori}). Se il vettore
@@ -19029,8 +19139,8 @@ In questo caso, @code{$0} @`e la stringa obiettivo di
default.
@code{gensub()} restituisce la nuova stringa come risultato, e questa
@`e passata direttamente a @code{print} per essere stampata.
-@c @cindex avvertimenti automatici
-@c @cindex automatici, avvertimenti
+@c @cindex automatic warnings
+@c @cindex warnings, automatic
Se l'argomento @var{come} @`e una stringa che non inizia con @samp{g} o
@samp{G}, o se @`e un numero minore o uguale a zero, si effettua solo una
sostituzione. Se @var{come} @`e zero, @command{gawk} emette
@@ -19065,8 +19175,8 @@ e il terzo argomento dev'essere modificabile.
@item @code{index(@var{dove}, @var{cosa})}
@cindexawkfunc{index}
-@cindex ricerca in stringhe
-@cindex trovare sottostringhe in una stringa
+@cindex ricerca @subentry in stringhe
+@cindex trovare @subentry sottostringhe in una stringa
Ricerca nella stringa @var{dove} la prima occorrenza della stringa @var{cosa},
e restituisce la posizione in caratteri dell'inizio di quest'occorrenza nella
stringa @var{dove}. Si consideri il seguente esempio:
@@ -19079,7 +19189,7 @@ $ @kbd{awk 'BEGIN @{ print index("noccioline", "oli")
@}'}
@noindent
Se @var{cosa} non viene trovato, @code{index()} restituisce zero.
-@cindex angolo buio, @dfn{regexp} come secondo argomento di @code{index()}
+@cindex angolo buio @subentry @dfn{regexp} come secondo argomento di
@code{index()}
In BWK @command{awk} e @command{gawk},
@`e un errore fatale usare una costante @dfn{regexp} per @var{cosa}.
Altre implementazioni lo consentono, considerando semplicemente
@@ -19088,8 +19198,8 @@ la costante @dfn{regexp} come un'espressione che
significa
@item @code{length(}[@var{stringa}]@code{)}
@cindexawkfunc{length}
-@cindex stringa, lunghezza di una
-@cindex lunghezza di una stringa
+@cindex stringa @subentry lunghezza di una
+@cindex lunghezza @subentry di una stringa
Restituisce il numero di caratteri in @var{stringa}. Se
@var{stringa} @`e un numero, viene restituita la lunghezza della stringa
di cifre che rappresenta quel numero. Per esempio, @code{length("abcde")} @`e
@@ -19109,14 +19219,14 @@ Invece, @code{length(15 * 35)} restituisce tre. In
questo esempio,
e 525 @`e quindi convertito alla stringa @code{"525"}, che @`e composta da
tre caratteri.
-@cindex lunghezza di un record in input
-@cindex record in input, lunghezza di un
+@cindex lunghezza @subentry di un record in input
+@cindex record @subentry in input, lunghezza di un
Se non si specifica alcun argomento, @code{length()} restituisce la
lunghezza di @code{$0}.
@c @cindex historical features
-@cindex portabilit@`a, funzione @code{length()}
-@cindex POSIX @command{awk}, funzione @code{length()} e
+@cindex portabilit@`a @subentry funzione @code{length()}
+@cindex POSIX @command{awk} @subentry @code{length()} (funzione)
@quotation NOTA
In alcune delle prime versioni di @command{awk}, la funzione @code{length()}
poteva essere richiamata senza alcuna parentesi. Farlo @`e considerata
@@ -19125,7 +19235,7 @@ per compatibilit@`a con la vecchia prassi. Per
garantire la massima
portabilit@`a ai programmi, @`e meglio mettere sempre le parentesi.
@end quotation
-@cindex angolo buio, funzione @code{length()}
+@cindex angolo buio @subentry funzione @subentry @code{length()}
Se @code{length()} @`e chiamata con una variabile che non @`e stata usata,
@command{gawk} considera la variabile come uno scalare. Altre
implementazioni di @command{awk} non assegnano nessun tipo alla variabile.
@@ -19147,11 +19257,11 @@ Se @option{--lint} @`e
stato specificato sulla riga di comando, @command{gawk} emette un
avvertimento a questo riguardo.
-@cindex estensioni comuni, @code{length()} applicato a un vettore
-@cindex comuni, estensioni@comma{} @code{length()} applicato a un vettore
-@cindex differenze tra @command{gawk} e @command{awk}, funzione @code{length()}
-@cindex numero di elementi di un vettore
-@cindex vettore, determinare il numero degli elementi
+@cindex estensioni comuni @subentry @code{length()} applicato a un vettore
+@cindex comuni @subentry estensioni @subentry @code{length()} applicato a un
vettore
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione
@code{length()}
+@cindex numero @subentry di elementi in un vettore
+@cindex vettori @subentry determinare il numero degli elementi
In @command{gawk} e in parecchie altre implementazioni @command{awk},
se l'argomento @`e un vettore, la funzione @code{length()} restituisce il
numero
di elementi nel vettore. @value{COMMONEXT}
@@ -19174,8 +19284,8 @@ argomento genera un errore fatale
@item @code{match(@var{stringa}, @var{regexp}} [@code{, @var{vettore}}]@code{)}
@cindexawkfunc{match}
-@cindex stringa, ricercare espressioni regolari in una
-@cindex ricerca @dfn{regexp} in stringhe
+@cindex stringa @subentry ricercare espressioni regolari in una
+@cindex ricerca @subentry @dfn{regexp} in stringhe
Ricerca in @var{stringa} la
sottostringa pi@`u lunga, a partire da sinistra, che corrisponde
all'espressione regolare @var{regexp} e restituisce la posizione
@@ -19197,12 +19307,15 @@ trattano stringhe e che hanno a che fare con
espressioni regolari, come
per @code{match()}, l'ordine @`e lo stesso che per l'operatore @samp{~} :
@samp{@var{stringa} ~ @var{regexp}}.
-@cindex @code{RSTART}, variabile, funzione @code{match()} e
-@cindex variabile @code{RSTART}, funzione @code{match()} e
-@cindex @code{RLENGTH}, variabile, funzione @code{match()} e
-@cindex variabile @code{RLENGTH}, funzione @code{match()} e
-@cindex funzione @code{match()}, variabili @code{RSTART}/@code{RLENGTH}
-@cindex @code{match()}, funzione, variabili @code{RSTART}/@code{RLENGTH}
+@cindex @code{RSTART} (variabile) @subentry funzione @code{match()} e
+@cindex variabile @subentry @code{RSTART} @subentry funzione @code{match()} e
+@cindex @code{RLENGTH} (variabile) @subentry funzione @code{match()} e
+@cindex variabile @subentry @code{RLENGTH} @subentry funzione @code{match()} e
+@cindex funzione @subentry @code{match()} @subentry variabili
@code{RSTART}/@code{RLENGTH}
+@cindex funzione @subentry @code{match()} @subentry effetti collaterali
+@cindex @code{match()} (funzione) @subentry variabili
@code{RSTART}/@code{RLENGTH}
+@cindex @code{match()} (funzione) @subentry effetti collaterali
+@cindex effetti collaterali @subentry funzione @subentry @code{match()}
La funzione @code{match()} imposta la variabile predefinita @code{RSTART}
all'indice.
Imposta anche la variabile predefinita @code{RLENGTH} alla
@@ -19254,7 +19367,7 @@ Corrispondenza di or+e alla posiz. 19 in Il mio
programma corre
Corrispondenza di Melvin alla posiz. 1 in Melvin @`e passato da qui.
@end example
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{match()}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione
@code{match()}
Se @var{vettore} esiste gi@`a, viene cancellato, e quindi l'elemento numero
zero di @var{vettore} @`e impostato all'intera parte di @var{stringa}
individuata da @var{regexp}. Se @var{regexp} contiene parentesi,
@@ -19293,8 +19406,8 @@ fra parentesi, perch@'e non tutte potrebbero aver
individuato del testo;
quindi, andrebbero esaminati usando l'operatore @code{in}
(@pxref{Visitare elementi}).
-@cindex risoluzione di problemi, funzione @code{match()}
-@cindex problemi, risoluzione di, funzione @code{match()}
+@cindex risoluzione di problemi @subentry funzione @code{match()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{match()}
L'argomento @var{vettore} di @code{match()} @`e un'estensione
@command{gawk}. In modalit@`a compatibile
(@pxref{Opzioni}),
@@ -19363,7 +19476,7 @@ split("cul-de-sac", a, "-", separatori)
@end example
@noindent
-@cindex stringhe, divisione, esempio
+@cindex stringa @subentry divisione @subentry esempio
divide la stringa @code{"cul-de-sac"} in tre campi usando @samp{-} come
separatore. Il vettore @code{a} ha i seguenti contenuti:
@@ -19383,7 +19496,7 @@ seps[2] = "-"
@noindent
Il valore restituito da questa chiamata a @code{split()} @`e tre.
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{split()}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione
@code{split()}
Come nella divisione in campi dei record in input, quando il valore di
@var{separacampo} @`e @w{@code{" "}}, gli spazi bianchi a inizio e fine stringa
vengono ignorati nell'assegnare valori agli elementi di @var{vettore} ma non
nel
@@ -19402,7 +19515,7 @@ Anche se @samp{RS = ""} fa s@`{@dotless{i}} che il
carattere di ritorno a capo s
separatore di campo,
questo non influenza il modo in cui @code{split()} divide le stringhe.
-@cindex angolo buio, funzione @code{split()}
+@cindex angolo buio @subentry funzione @subentry @code{split()}
Recenti implementazioni di @command{awk}, incluso @command{gawk},
consentono che il terzo argomento sia una costante @dfn{regexp}
(@w{@code{/}@dots{}@code{/}})
@@ -19426,12 +19539,13 @@ non @`e la stringa nulla),
@var{vettore} ha solo un elemento. Il valore di quell'elemento @`e la
@var{stringa} originale.
-In modalit@`a POSIX (@pxref{Opzioni}), il quarto argomento non @`e disponibile.
+@cindex modalit@`a POSIX
+In modalit@`a POSIX (@pxref{Opzioni}), il quarto argomento non @`e consentito.
@item @code{sprintf(@var{formato}, @var{espressione1}, @dots{})}
@cindexawkfunc{sprintf}
-@cindex formattare stringhe
-@cindex stringhe, formattazione
+@cindex formattare @subentry stringhe
+@cindex stringa @subentry formattazione
Restituisce (senza stamparla) la stringa che @code{printf} avrebbe
stampato con gli stessi argomenti
(@pxref{Printf}).
@@ -19445,8 +19559,8 @@ pival = sprintf("pi = %.2f (approx.)", 22/7)
assegna la stringa @w{@samp{pi = 3.14 (approx.)}} alla variabile @code{pival}.
@cindexgawkfunc{strtonum}
-@cindex conversione di una stringa in un numero
-@cindex stringhe, conversione in numeri
+@cindex conversione @subentry da stringa a numero
+@cindex stringa @subentry conversione in numero
@item @code{strtonum(@var{stringa}) #}
Esamina @var{stringa} e restituisce il suo valore numerico. Se
@var{stringa} inizia con la cifra @samp{0}, @code{strtonum()} presuppone
@@ -19475,8 +19589,8 @@ localizzazione corrente per riconoscere i numeri
@item @code{sub(@var{regexp}, @var{rimpiazzo}} [@code{,
@var{obiettivo}}]@code{)}
@cindexawkfunc{sub}
-@cindex rimpiazzare in una stringa
-@cindex stringa, rimpiazzare in una
+@cindex rimpiazzare @subentry caratteri in una stringa
+@cindex stringa @subentry rimpiazzare in una
Ricerca in @var{obiettivo}, che @`e visto come una stringa,
la prima sottostringa pi@`u lunga possibile,
a partire da sinistra, che corrisponde all'espressione regolare @var{regexp}.
@@ -19558,10 +19672,10 @@ ogni riga con un @samp{&}:
@{ sub(/\|/, "\\&"); print @}
@end example
-@cindex @code{sub()}, funzione, argomenti di
-@cindex funzione @code{sub()}, argomenti di
-@cindex @code{gsub()}, funzione, argomenti di
-@cindex funzione @code{gsub()}, argomenti di
+@cindex @code{sub()} (funzione) @subentry argomenti di
+@cindex funzione @subentry @code{sub()} @subentry argomenti di
+@cindex @code{gsub()} (funzione) @subentry argomenti di
+@cindex funzione @subentry @code{gsub()} @subentry argomenti di
Come gi@`a accennato, il terzo argomento di @code{sub()} dev'essere
una variabile, un campo, o un elemento di vettore.
Alcune versioni di @command{awk} accettano come terzo argomento
@@ -19576,8 +19690,8 @@ sub(/USA/, "Stati Uniti", "gli USA e il Canada")
@end example
@noindent
-@cindex risoluzione di problemi, funzioni @code{gsub()}/@code{sub()}
-@cindex problemi, risoluzione di, funzioni @code{gsub()}/@code{sub()}
+@cindex risoluzione di problemi @subentry funzioni @code{gsub()}/@code{sub()}
+@cindex problemi @subentry risoluzione di @subentry funzioni
@code{gsub()}/@code{sub()}
Per compatibilit@`a storica, @command{gawk} accetta un tale codice erroneo.
Tuttavia, l'uso di qualsiasi altra espressione non modificabile
come terzo parametro causa un errore fatale, e il programma
@@ -19604,7 +19718,7 @@ suffisso @`e restituito anche
se @var{lunghezza} @`e maggiore del numero di caratteri disponibili
nella stringa, a partire dal carattere @var{inizio}.
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
Se @var{inizio} @`e minore di uno, @code{substr()} lo tratta come se
fosse uno. (POSIX non specifica cosa fare in questo caso:
BWK @command{awk} si comporta cos@`{@dotless{i}}, e quindi @command{gawk} fa
lo stesso.)
@@ -19613,8 +19727,8 @@ nella stringa, @code{substr()} restituisce la stringa
nulla.
Analogamente, se @var{lunghezza} @`e presente ma minore o uguale a zero,
viene restituita la stringa nulla.
-@cindex risoluzione di problemi, funzione @code{substr()}
-@cindex problemi, risoluzione di, funzione @code{substr()}
+@cindex risoluzione di problemi @subentry funzione @code{substr()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{substr()}
La stringa restituita da @code{substr()} @emph{non pu@`o} essere
assegnata. Quindi, @`e un errore tentare di modificare una porzione di
una stringa, come si vede nel seguente esempio:
@@ -19633,7 +19747,7 @@ di @code{sub()} o @code{gsub()}:
gsub(/xyz/, "pdq", substr($0, 5, 20)) # SBAGLIATO
@end example
-@cindex portabilit@`a, funzione @code{substr()}
+@cindex portabilit@`a @subentry funzione @code{substr()}
(Alcune versioni commerciali di @command{awk} consentono un tale uso di
@code{substr()}, ma un tale codice non @`e portabile.)
@@ -19647,11 +19761,11 @@ stringa = "abcdef"
stringa = substr(stringa, 1, 2) "CDE" substr(stringa, 6)
@end example
-@cindex maiuscolo/minuscolo, conversione da/a
-@cindex stringhe, convertire maiuscolo/minuscolo
+@cindex maiuscolo/minuscolo @subentry conversione da/a
+@cindex stringa @subentry conversione maiuscolo/minuscolo
@item @code{tolower(@var{stringa})}
@cindexawkfunc{tolower}
-@cindex convertire stringa in minuscolo
+@cindex conversione @subentry di stringa in minuscolo
Restituisce una copia di @var{stringa}, con ogni carattere maiuscolo
nella stringa rimpiazzato dal suo corrispondente carattere minuscolo.
I caratteri non alfabetici non vengono modificati. Per esempio,
@@ -19660,7 +19774,7 @@ I caratteri non alfabetici non vengono modificati. Per
esempio,
@item @code{toupper(@var{stringa})}
@cindexawkfunc{toupper}
-@cindex convertire stringa in maiuscolo
+@cindex conversione @subentry di stringa in maiuscolo
Restituisce una copia di @var{stringa}, con ogni carattere minuscolo
nella stringa rimpiazzato dal suo corrispondente carattere maiuscolo.
I caratteri non alfabetici non vengono modificati. Per esempio,
@@ -19669,10 +19783,10 @@ I caratteri non alfabetici non vengono modificati.
Per esempio,
@end table
@sidebar Individuare la stringa nulla
-@cindex individuare la stringa nulla
-@cindex stringa nulla, individuare la
-@cindex @code{*} (asterisco), operatore @code{*}, individuare la stringa nulla
-@cindex asterisco (@code{*}), operatore @code{*}, individuare la stringa nulla
+@cindex individuare @subentry la stringa nulla
+@cindex stringa nulla @subentry individuare la
+@cindex @code{*} (asterisco) @subentry operatore @code{*} @subentry
individuare la stringa nulla
+@cindex asterisco (@code{*}) @subentry operatore @code{*} @subentry
individuare la stringa nulla
In @command{awk}, l'operatore @samp{*} pu@`o individuare la stringa nulla.
Questo @`e particolarmente importante per le funzioni @code{sub()},
@@ -19692,16 +19806,16 @@ Sebbene questo sia abbastanza sensato, pu@`o
suscitare una certa sorpresa.
@subsubsection Ulteriori dettagli su @samp{\} e @samp{&} con @code{sub()},
@code{gsub()} e @code{gensub()}
@cindex protezione caratteri nelle funzioni
@code{gsub()}/@code{gensub()}/@code{sub()}
-@cindex funzione @code{sub()}, protezione caratteri
-@cindex @code{sub()}, funzione, protezione caratteri
-@cindex funzione @code{gsub()}, protezione caratteri
-@cindex @code{gsub()}, funzione, protezione caratteri
-@cindex funzione @code{gensub()} (@command{gawk}), protezione caratteri
-@cindex @code{gensub()}, funzione (@command{gawk}), protezione caratteri
-@cindex @code{\} (barra inversa), @code{gsub()}/@code{gensub()}/@code{sub()}
funzioni e
-@cindex barra inversa (@code{\}), @code{gsub()}/@code{gensub()}/@code{sub()}
funzioni e
-@cindex @code{&} (e commerciale), funzioni
@code{gsub()}/@code{gensub()}/@code{sub()} e
-@cindex e commerciale (@code{&}), funzioni
@code{gsub()}/@code{gensub()}/@code{sub()} e
+@cindex funzione @subentry @code{sub()} @subentry protezione caratteri
+@cindex @code{sub()} (funzione) @subentry protezione caratteri
+@cindex funzione @subentry @code{gsub()} @subentry protezione caratteri
+@cindex @code{gsub()} (funzione) @subentry protezione caratteri
+@cindex funzione @subentry @code{gensub()} (@command{gawk}) @subentry
protezione caratteri
+@cindex @code{gensub()} (funzione @command{gawk}) @subentry protezione
caratteri
+@cindex @code{\} (barra inversa) @subentry
@code{gsub()}/@code{gensub()}/@code{sub()} funzioni e
+@cindex barra inversa (@code{\}) @subentry
@code{gsub()}/@code{gensub()}/@code{sub()} funzioni e
+@cindex @code{&} (e commerciale) @subentry funzioni
@code{gsub()}/@code{gensub()}/@code{sub()} e
+@cindex e commerciale (@code{&}) @subentry funzioni
@code{gsub()}/@code{gensub()}/@code{sub()} e
@quotation ATTENZIONE
Si dice che questa sottosezione possa causare dei mal di testa.
@@ -19720,7 +19834,7 @@ Poi c'@`e il momento dell'esecuzione, quello in cui
@command{awk}
esamina effettivamente la stringa da sostituire, per determinare cosa
fare.
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
In entrambi i livelli, @command{awk} ricerca un dato insieme di caratteri
che possono venire dopo una
barra inversa. A livello lessicale, cerca le sequenze di protezione
@@ -19876,7 +19990,7 @@ di quel che ci si attendeva. Inoltre, la proposta del
manutentore di
regole finali risultanti sono un po' pi@`u semplici. I risultati sono simili,
tranne che in un caso.
-@cindex POSIX @command{awk}, funzioni @code{gsub()}/@code{sub()} e
+@cindex POSIX @command{awk} @subentry @code{gsub()}/@code{sub()} (funzioni)
Le regole POSIX stabiliscono che @samp{\&} nella stringa di rimpiazzo
produca il carattere @samp{&}, @samp{\\} produce il carattere @samp{\},
e che @samp{\} seguito da qualsiasi carattere non @`e speciale; la @samp{\}
@@ -20011,8 +20125,8 @@ da fare delle sostituzioni.
@node Funzioni di I/O
@subsection Funzioni di Input/Output
-@cindex input/output, funzioni di
-@cindex funzioni di input/output
+@cindex input/output @subentry funzioni di
+@cindex funzioni @subentry di input/output
Le seguenti funzioni riguardano l'input/output (I/O).
I parametri opzionali sono racchiusi tra parentesi quadre ([ ]):
@@ -20020,7 +20134,7 @@ I parametri opzionali sono racchiusi tra parentesi
quadre ([ ]):
@table @asis
@item @code{close(}@var{nome_file} [@code{,} @var{come}]@code{)}
@cindexawkfunc{close}
-@cindex file, chiusura
+@cindex file @subentry chiusura di
@cindex chiudere un file o un coprocesso
Chiude il file @var{nome_file} in input o in output. Alternativamente,
l'argomento pu@`o essere un comando della shell usato per creare un
@@ -20051,10 +20165,10 @@ Scrive su disco ogni output contenuto in memoria,
associato con
file aperto in scrittura o un comando della shell che ridirige output a
una @dfn{pipe} o a un coprocesso.
-@cindex buffer, scrivere su disco un
-@cindex memoria tampone, scrivere su disco
-@cindex output, bufferizzazione
-@cindex output, nella memoria tampone (buffer)
+@cindex buffer @subentry scrivere su disco un
+@cindex memoria tampone @subentry scrivere su disco
+@cindex output @subentry bufferizzazione
+@cindex output @subentry nella memoria tampone (buffer)
Molti programmi di utilit@`a @dfn{bufferizzano} il loro output (cio@`e,
accumulano in memoria record da scrivere in un file su disco o sullo
schermo, fin quando non arriva il momento giusto per inviare i
@@ -20068,8 +20182,8 @@ Questo @`e lo scopo della funzione @code{fflush()};
anche
@command{gawk} scrive il suo output in un buffer, e la funzione @code{fflush()}
forza @command{gawk} a svuotare i suoi buffer.
-@cindex estensioni comuni, funzione @code{fflush()}
-@cindex Brian Kernighan, @command{awk} di
+@cindex estensioni comuni @subentry funzione @code{fflush()}
+@cindex Brian Kernighan @subentry @command{awk} di
Brian Kernighan ha aggiunto @code{fflush()} al suo @command{awk} nell'aprile
1992. Per due decenni @`e rimasta un'estensione comune. A Dicembre
2012 @`e stata accettata e inclusa nello standard POSIX.
@@ -20098,8 +20212,8 @@ buffer dello standard output.
@c @cindex automatic warnings
@c @cindex warnings, automatic
-@cindex risoluzione di problemi, funzione @code{fflush()}
-@cindex problemi, risoluzione di, funzione @code{fflush()}
+@cindex risoluzione di problemi @subentry funzione @code{fflush()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{fflush()}
@code{fflush()} restituisce zero se il buffer @`e svuotato con successo;
altrimenti, restituisce un valore diverso da zero. (@command{gawk}
restituisce @minus{}1.)
@@ -20118,7 +20232,7 @@ in tal caso, @code{fflush()} restituisce ancora
@minus{}1.
@end table
@sidebar Bufferizzazione interattiva e non interattiva
-@cindex bufferizzazione, interattiva vs.@: non interattiva
+@cindex bufferizzazione @subentry interattiva vs.@: non interattiva
A complicare ulteriormente le cose, i problemi di bufferizzazione possono
peggiorare se il programma eseguito
@@ -20167,7 +20281,7 @@ In questo caso, nessun output viene stampato finch@'e
non @`e stato battuto il
@table @asis
@item @code{system(@var{comando})}
@cindexawkfunc{system}
-@cindex chiamare comandi di shell
+@cindex chiamare @subentry comando di shell
@cindex interagire con altri programmi
Esegue il comando del sistema operativo @var{comando} e quindi
ritorna al programma @command{awk}.
@@ -20199,10 +20313,10 @@ close("/bin/sh")
@end example
@noindent
-@cindex risoluzione di problemi, funzione @code{system()}
-@cindex problemi, risoluzione di, funzione @code{system()}
-@cindex @option{--sandbox}, opzione, disabilitare la funzione @code{system()}
-@cindex opzione @option{--sandbox}, disabilitare la funzione @code{system()}
+@cindex risoluzione di problemi @subentry funzione @code{system()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{system()}
+@cindex @option{--sandbox} (opzione) @subentry disabilitare la funzione
@code{system()}
+@cindex opzione @subentry @option{--sandbox} @subentry disabilitare la
funzione @code{system()}
Tuttavia, nel caso che il programma @command{awk} sia interattivo,
@code{system()} @`e utile per eseguire grossi programmi autonomi,
come ad esempio la shell o un programma di modifica testi.
@@ -20257,10 +20371,10 @@ A partire dalla versione di agosto 2018, BWK
@command{awk} si comporta
come @command{gawk} per il codice di ritorno della chiamata @code{system()}.
@sidebar Controllare la bufferizzazione dell'output con @code{system()}
-@cindex buffer, scrivere su disco un
-@cindex bufferizzazione, dell'input/output
-@cindex output, bufferizzazione
-@cindex bufferizzazione, dell'output
+@cindex buffer @subentry scrivere su disco un
+@cindex bufferizzazione @subentry dell'input/output
+@cindex output @subentry bufferizzazione
+@cindex bufferizzazione @subentry dell'output
La funzione @code{fflush()} consente un controllo esplicito sulla
bufferizzazione dell'output per singoli file e @dfn{pipe}.
@@ -20321,15 +20435,15 @@ invocare @code{system()}, l'output sarebbe
quest'ultimo (quello non voluto).
@node Funzioni di tempo
@subsection Funzioni per gestire marcature temporali
-@cindex funzioni di tempo
+@cindex funzioni @subentry di tempo
@cindex marcature temporali
-@cindex data e ora, si veda marcature temporali
-@cindex @dfn{log} (registro), file di, marcature temporali nei
-@cindex registro (@dfn{log}), file di, marcature temporali nel
-@cindex file di registro (@dfn{log}), marcature temporali nei
-@cindex @command{gawk}, data e ora (marcature temporali)
-@cindex POSIX @command{awk}, marcature temporali e
+@cindex data e ora @subentry @seealso{marcature temporali}
+@cindex @dfn{log} (registro) @subentry file di @subentry marcature temporali
nei
+@cindex registro (@dfn{log}) @subentry file di @subentry marcature temporali
nel
+@cindex file @subentry di registro (@dfn{log}) @subentry marcature temporali
nei
+@cindex @command{gawk} @subentry data e ora (marcature temporali)
+@cindex POSIX @command{awk} @subentry marcature temporali
I programmi @command{awk} sono frequentemente usati per elaborare file di
registro [file con estensione .log], che contengono l'informazione sulla data e
l'ora (marcatura temporale) in cui un particolare record @`e stato registrato
sul log.
@@ -20368,9 +20482,9 @@ il che @`e sufficiente per rappresentare date e ore
fino a inizio 2038
di date, compresi dei valori negativi per rappresentare delle date
anteriori all'Epoca.
-@cindex @command{date}, programma di utilit@`a GNU
-@cindex programma di utilit@`a @command{date} GNU
-@cindex tempo, ottenerlo
+@cindex @command{date} (programma di utilit@`a GNU)
+@cindex programma di utilit@`a GNU @subentry @command{date}
+@cindex tempo @subentry ottenerlo
Per facilitare l'elaborazione di tali file di registro, e per produrre
dei rapporti utili, @command{gawk} prevede le seguenti funzioni per
lavorare con le marcature temporali. Si tratta di estensioni @command{gawk};
@@ -20416,15 +20530,15 @@ Se @var{specifiche_data} non contiene elementi in
numero sufficiente, o se
la data e ora risultante sono fuori dall'intervallo previsto,
@code{mktime()} restituisce @minus{}1.
-@cindex @command{gawk}, vettore @code{PROCINFO} in
-@cindex @code{PROCINFO}, vettore
-@cindex vettore @code{PROCINFO}
+@cindex @command{gawk} @subentry vettore @subentry @code{PROCINFO} in
+@cindex @code{PROCINFO} (vettore)
+@cindex vettore @subentry @code{PROCINFO}
@item @code{strftime(}[@var{formato} [@code{,} @var{data_e_ora} [@code{,}
@var{utc}] ] ]@code{)}
@cindexgawkfunc{strftime}
-@cindex formato stringa marcature temporali
-@cindex formato stringa data e ora
-@cindex data e ora, formato stringa
-@cindex marcature temporali, formato stringa
+@cindex formato @subentry stringa @subentry marcature temporali
+@cindex formato @subentry stringa @subentry data e ora
+@cindex data e ora @subentry formato stringa
+@cindex marcature temporali @subentry formato stringa
Formatta la data e ora specificata da @var{data_e_ora} in base alle indicazioni
contenute nella stringa @var{formato} e restituisce il risultato.
@`E simile alla funzione omonima in ISO C.
@@ -20450,8 +20564,8 @@ la lista che segue per le varie direttive di
formattazione.
@item @code{systime()}
@cindexgawkfunc{systime}
@cindex marcature temporali
-@cindex data e ora, si veda marcature temporali
-@cindex data e ora corrente del sistema
+@cindex data e ora @subentry @seealso{marcature temporali}
+@cindex data e ora @subentry corrente del sistema
Restituisce l'ora corrente come numero di secondi a partire dall'Epoca
del sistema. Sui sistemi aderenti allo standard POSIX, questo @`e il numero
di secondi trascorsi a partire dal primo gennaio 1970, ora di Greenwich
@@ -20464,9 +20578,9 @@ determinare quanto tempo prima un particolare record
@`e stato registrato.
@`E anche possibile produrre record di registro usando il formato
``secondi a partire dall'Epoca''.
-@cindex conversione di date in marcature temporali
-@cindex date, conversione in marcature temporali
-@cindex marcature temporali, conversione date nelle
+@cindex conversione @subentry di date in marcature temporali
+@cindex date @subentry conversione in marcature temporali
+@cindex marcature temporali @subentry conversione date nelle
La funzione @code{mktime()} consente di convertire una rappresentazione in
forma testuale di una data e ora in una marcatura temporale.
Questo semplifica i confronti prima/dopo tra differenti date e ore, in
@@ -20480,8 +20594,8 @@ letteralmente ci@`o che non @`e una specifica di
formato nella stringa che viene
restituita, mentre sostituisce i valori di data e ora a seconda delle
specifiche di formato contenute nella stringa @var{formato}.
-@cindex specificatori di formato, funzione @code{strftime()} di
(@command{gawk})
-@cindex formato, specificatori di, funzione @code{strftime()} di
(@command{gawk})
+@cindex specificatori di formato @subentry funzione @code{strftime()} di
@command{gawk}
+@cindex formato @subentry specificatori di @subentry funzione
@code{strftime()} di @command{gawk}
Per @code{strftime()} lo standard
1999 ISO C@footnote{Sfortunatamente,
non tutte le funzioni @code{strftime()} dei vari sistemi operativi
@@ -20587,7 +20701,7 @@ Luned@`{@dotless{i}} @`e il giorno numero 1.
Il numero di settimana dell'anno (con la prima domenica dell'anno presa
come primo giorno della prima settimana) come numero decimale (00--53).
-@c @cindex ISO 8601
+@cindex ISO @subentry 8601 (standard per marcature temporali)
@item %V
Il numero di settimana dell'anno (con il primo luned@`{@dotless{i}} dell'anno
preso
come primo giorno della prima settimana) come numero decimale (01--53).
@@ -20698,9 +20812,9 @@ La data in formato VMS (p.es., @samp{20-JUN-1991}).
In aggiunta a ci@`o, le notazioni alternative sono riconosciute, ma al
loro posto sono usate quelle normali.
-@cindex @code{date}, programma di utilit@`a POSIX
-@cindex programma di utilit@`a POSIX @code{date}
-@cindex POSIX @command{awk}, programma di utilit@`a @code{date} e
+@cindex @code{date} (programma di utilit@`a POSIX)
+@cindex programma di utilit@`a POSIX @subentry @code{date}
+@cindex POSIX @command{awk} @subentry @code{date} (programma di utilit@`a)
Il seguente esempio @`e un'implementazione @command{awk} del
programma di utilit@`a POSIX @command{date}.
Normalmente, il programma di utilit@`a @command{date} stampa la
@@ -20750,14 +20864,17 @@ gawk 'BEGIN @{
@node Funzioni a livello di bit
@subsection Funzioni per operazioni di manipolazione bit
-@cindex bit, funzioni per la manipolazione di
-@cindex manipolazione di bit, funzioni per la
-@cindex funzioni per la manipolazione di bit
-@cindex bit, operazioni sui
-@cindex AND, operazione sui bit
-@cindex OR, operazione sui bit
-@cindex XOR, operazione sui bit
-@cindex operazioni sui bit
+@cindex bit @subentry funzioni per la manipolazione di
+@cindex manipolazione di bit @subentry funzioni per la
+@cindex funzioni @subentry per la manipolazione di bit
+@cindex bit @subentry operazioni sui
+@cindex AND (operazione sui bit)
+@cindex operazione sui bit @subentry AND
+@cindex OR (operazione sui bit)
+@cindex operazione sui bit @subentry OR
+@cindex XOR (operazione sui bit)
+@cindex operazione sui bit @subentry XOR
+@cindex operazione sui bit
@quotation
@i{Io posso spiegarlo per te, ma non posso capirlo per te.}
@author Anonimo
@@ -20882,8 +20999,8 @@ Operandi | 0 | 1 | 0 | 1 | 0 | 1
@end docbook
@end float
-@cindex bit, complemento a livello di
-@cindex complemento a livello di bit
+@cindex bit @subentry complemento a livello di
+@cindex complemento sui bit
Come si vede, il risultato di un'operazione di AND @`e 1 solo quando
@emph{entrambi} i bit sono 1.
Il risultato di un'operazione di OR @`e 1 se @emph{almeno un} bit @`e 1.
@@ -20893,10 +21010,10 @@ La successiva operazione @`e il @dfn{complemento}; il
complemento di 1 @`e 0 e
il complemento di 0 @`e 1. Quindi, quest'operazione ``inverte'' tutti i bit
di un dato valore.
-@cindex bit, spostamento di
-@cindex spostamento a sinistra, bit a bit
-@cindex spostamento a destra, bit a bit
-@cindex spostamento, bit a bit
+@cindex bit @subentry spostamento di
+@cindex spostamento a sinistra @subentry bit a bit
+@cindex spostamento a destra @subentry bit a bit
+@cindex spostamento @subentry bit a bit
Infine, due altre operazioni comuni consistono nello spostare i bit
a sinistra o a destra.
Per esempio, se si ha una stringa di bit @samp{10111001} e la si sposta
@@ -20911,39 +21028,41 @@ le funzioni predefinite di @command{gawk} che rendono
disponibili
le operazioni a livello di bit.
I parametri opzionali sono racchiusi tra parentesi quadre ([ ]):
-@cindex @command{gawk}, operazioni a livello di bit in
+@cindex @command{gawk} @subentry operazioni sui bit in
@table @asis
@cindexgawkfunc{and}
-@cindex AND, operazione sui bit
+@cindex AND (operazione sui bit)
+@cindex operazione sui bit @subentry AND
@item @code{and(}@var{v1}@code{,} @var{v2} [@code{,} @dots{}]@code{)}
Restituisce l'AND bit a bit degli argomenti.
Gli argomenti devono essere almeno due.
@cindexgawkfunc{compl}
-@cindex complemento a livello di bit
+@cindex complemento sui bit
+@cindex operazione sui bit @subentry complemento
@item @code{compl(@var{val})}
Restituisce il complemento bit a bit di @var{val}.
@cindexgawkfunc{lshift}
-@cindex spostamento a sinistra
@item @code{lshift(@var{val}, @var{contatore})}
Restituisce il valore di @var{val}, spostato a sinistra di
@var{contatore} bit.
@cindexgawkfunc{or}
-@cindex OR, operazione sui bit
+@cindex OR (operazione sui bit)
+@cindex operazione sui bit @subentry OR
@item @code{or(}@var{v1}@code{,} @var{v2} [@code{,} @dots{}]@code{)}
Restituisce l'OR bit a bit degli argomenti.
Gli argomenti devono essere almeno due.
@cindexgawkfunc{rshift}
-@cindex spostamento a destra
@item @code{rshift(@var{val}, @var{contatore})}
Restituisce il valore di @var{val}, spostato a destra
di @var{contatore} bit.
@cindexgawkfunc{xor}
-@cindex XOR, operazione sui bit
+@cindex XOR (operazione sui bit)
+@cindex operazione sui bit @subentry XOR
@item @code{xor(}@var{v1}@code{,} @var{v2} [@code{,} @dots{}]@code{)}
Restituisce il XOR bit a bit degli argomenti.
Gli argomenti devono essere almeno due.
@@ -20959,10 +21078,10 @@ negativo produce un errore fatale. Si veda la nota a
lato
Ecco una funzione definita dall'utente (@pxref{Funzioni definite dall'utente})
che illustra l'uso di queste funzioni:
-@cindex @code{bits2str()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{bits2str()}
-@cindex @code{testbits.awk}, programma
-@cindex programma @code{testbits.awk}
+@cindex @code{bits2str()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{bits2str()}
+@cindex @code{testbits.awk} (programma)
+@cindex programma @subentry @code{testbits.awk}
@example
@group
@c file eg/lib/bits2str.awk
@@ -21035,11 +21154,11 @@ $ @kbd{gawk -f testbits.awk}
@print{} rshift(0x99, 2) = 0x26 = 00100110
@end example
-@cindex conversione da stringhe a numeri
-@cindex stringhe, conversione
-@cindex numeri, conversione in stringhe
-@cindex conversione da numeri a stringhe
-@cindex numeri, visti come stringhe di bit
+@cindex conversione @subentry da stringa a numero
+@cindex stringa @subentry conversione
+@cindex numeri @subentry conversione in stringhe
+@cindex conversione @subentry da numero a stringa
+@cindex numeri @subentry visti come stringhe di bit
La funzione @code{bits2str()} trasforma un numero binario in una stringa.
Inizializzando @code{maschera} a uno otteniamo
un valore binario in cui il bit pi@`u a destra @`e impostato a
@@ -21137,7 +21256,7 @@ Restituisce il valore 'vero' se @var{x} @`e un vettore.
Altrimenti, restituisce
'falso'.
@cindexgawkfunc{typeof}
-@cindex variabile, tipo di una
+@cindex variabili @subentry tipi di
@cindex tipo di una variabile
@item typeof(@var{x})
Restituisce una delle stringhe seguenti, a seconda del tipo di @var{x}:
@@ -21227,11 +21346,11 @@ non ancora tipizzati (untyped) a non ancora assegnati
(unassigned).
@node Funzioni di internazionalizzazione
@subsection Funzioni per tradurre stringhe
-@cindex @command{gawk}, funzioni di traduzione di stringhe
-@cindex funzioni di traduzione di stringhe
-@cindex traduzione di stringhe, funzioni di
+@cindex @command{gawk} @subentry funzioni di traduzione di stringhe
+@cindex funzioni @subentry di traduzione di stringhe
+@cindex traduzione di stringhe @subentry funzioni di
@cindex internazionalizzazione
-@cindex programmi @command{awk}, internazionalizzare
+@cindex programmi @command{awk} @subentry internazionalizzare
@command{gawk} prevede strumenti per internazionalizzare i programmi
@command{awk}.
@@ -21243,8 +21362,8 @@ I parametri opzionali sono racchiusi tra parentesi
quadre ([ ]):
@table @asis
@cindexgawkfunc{bindtextdomain}
-@cindex impostare directory con catalogo messaggi tradotti
-@cindex messaggi tradotti, impostare directory con catalogo
+@cindex impostare @subentry directory con catalogo messaggi tradotti
+@cindex messaggi tradotti @subentry impostare directory con catalogo
@item @code{bindtextdomain(@var{directory}} [@code{,} @var{dominio}]@code{)}
Imposta la directory in cui
@command{gawk} trova i file di traduzione dei messaggi, nel caso in cui
@@ -21280,8 +21399,9 @@ Il valore di default per @var{categoria} @`e
@code{"LC_MESSAGES"}.
@node Funzioni definite dall'utente
@section Funzioni definite dall'utente
-@cindex funzioni definite dall'utente
-@cindex utente, funzioni definite dall'
+@cindex funzione definita dall'utente
+@cindex definite dall'utente @subentry @dfn{Si veda} funzioni definite
dall'utente
+@cindex utente @subentry funzioni definite dall'
Programmi @command{awk} complessi spesso possono essere semplificati
definendo delle apposite funzioni personali.
Le funzioni definite dall'utente sono richiamate allo stesso modo di quelle
@@ -21312,7 +21432,7 @@ di variabili locali @`e semplicemente atroce.}
@author Brian Kernighan
@end quotation
-@cindex funzioni, definizione di
+@cindex funzioni @subentry definizione di
@cindex definizione di funzioni
Definizioni di funzioni possono stare in una posizione qualsiasi tra le regole
di un programma @command{awk}. Quindi, la forma generale di un
@@ -21334,10 +21454,10 @@ La definizione di una funzione chiamata @var{nome}
@`e simile a questa:
@end group
@end display
-@cindex nomi di funzione
-@cindex funzioni, nomi di
-@cindex limitazioni nei nomi di funzione
-@cindex nomi di funzione, limitazioni nei
+@cindex nomi @subentry di funzione
+@cindex funzioni @subentry nomi di
+@cindex limitazioni @subentry nei nomi di funzione
+@cindex nomi @subentry di funzione @subentry limitazioni nei
@noindent
Qui, @var{nome} @`e il nome della funzione da definire. Un nome di funzione
valido @`e come un nome di variabile valido: una sequenza di
@@ -21397,15 +21517,15 @@ possono essere in alcuni casi degli argomenti e in
altri casi
delle variabili locali. Un'altra angolatura da cui guardare questo fatto
@`e che gli argomenti omessi assumono come valore di default la stringa nulla.
-@cindex convenzioni di programmazione, nella scrittura di funzioni
-@cindex funzioni, convenzioni di programmazione, nella scrittura di
+@cindex convenzioni di programmazione @subentry nella scrittura di funzioni
+@cindex funzioni @subentry convenzioni di programmazione @subentry nella
scrittura di
Solitamente, quando si scrive una funzione, si sa quanti nomi si intendono
usare per gli argomenti e quanti si vogliono usare come variabili locali.
@`E una convenzione in uso quella di aggiungere alcuni spazi extra tra gli
argomenti e le variabili locali, per documentare come va utilizzata quella
funzione.
-@cindex variabili nascoste
+@cindex variabili @subentry nascoste
@cindex nascondere valori di variabile
Durante l'esecuzione del corpo della funzione, gli argomenti e i valori
delle variabili locali
@@ -21421,8 +21541,8 @@ funzione @`e in esecuzione. Una volta che l'esecuzione
@`e terminata,
ritornano accessibili le variabili che erano oscurate
durante l'esecuzione della funzione.
-@cindex ricorsive, funzioni
-@cindex funzioni ricorsive
+@cindex ricorsive @subentry funzioni
+@cindex funzioni @subentry ricorsive
Il corpo della funzione pu@`o contenere espressioni che chiamano altre
funzioni. Tali espressioni possono perfino chiamare direttamente, o
indirettamente tramite un'altra funzione, la funzione stessa.
@@ -21436,10 +21556,10 @@ che @`e descritta in dettaglio nella @ref{Istruzione
return}.
Molti dei successivi esempi in questa @value{SECTION} usano
l'istruzione @code{return}.
-@cindex estensioni comuni, parola chiave @code{func}
+@cindex estensioni comuni @subentry parola chiave @code{func}
@c @cindex @command{awk} language, POSIX version
@c @cindex POSIX @command{awk}
-@cindex POSIX @command{awk}, parola chiave @code{function} in
+@cindex POSIX @command{awk} @subentry @code{function} (parola chiave)
In molte implementazioni di @command{awk}, compreso @command{gawk},
la parola chiave @code{function} pu@`o essere
abbreviata come @code{func}. @value{COMMONEXT}
@@ -21464,15 +21584,15 @@ possono essere usate prima che siano state
definite.@footnote{Questo
programma in realt@`a non verr@`a eseguito, perch@'e @code{foo()} risulter@`a
essere una funzione non definita.})
-@cindex portabilit@`a, nella definizione di funzioni
+@cindex portabilit@`a @subentry nella definizione di funzioni
Per essere certi che un programma @command{awk} sia portabile,
va sempre usata la parola chiave
@code{function} per definire una funzione.
@node Esempio di funzione
@subsection Un esempio di definizione di funzione
-@cindex esempio di definizione di funzione
-@cindex funzione, esempio di definizione di
+@cindex esempio @subentry di definizione di funzione
+@cindex funzione @subentry esempio di definizione di
Ecco un esempio di funzione definita dall'utente, di nome
@@ -21548,8 +21668,8 @@ In questo caso, la ricorsione termina quando la stringa
in input @`e
gi@`a vuota:
@c 8/2014: Thanks to Mike Brennan for the improved formulation
-@cindex @code{rev()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{rev()}
+@cindex @code{rev()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{rev()}
@example
function rev(stringa)
@{
@@ -21576,8 +21696,8 @@ Il seguente esempio usa la funzione predefinita
@code{strftime()}
(@pxref{Funzioni di tempo})
per creare una versione @command{awk} di @code{ctime()}:
-@cindex @code{ctime()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{ctime()}
+@cindex @code{ctime()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{ctime()}
@example
@c file eg/lib/ctime.awk
# ctime.awk
@@ -21605,8 +21725,8 @@ e qualche codice a livello utente potrebbe aver
modificato in precedenza
@node Chiamata di una funzione
@subsection Chiamare funzioni definite dall'utente
-@cindex funzioni definite dall'utente, chiamare
-@cindex chiamare funzioni definite dall'utente
+@cindex funzione definita dall'utente @subentry chiamare
+@cindex chiamare @subentry funzione definita dall'utente
@dfn{Chiamare una funzione} significa richiedere l'esecuzione di una
funzione, la quale svolge il compito per cui @`e stata scritta.
La chiamata di una funzione @`e un'espressione e il suo valore @`e quello
@@ -21646,8 +21766,8 @@ verrebbe emesso un messaggio di errore.
@node Campo di validit@`a variabili
@subsubsection Variabili locali e globali.
-@cindex variabili locali, in una funzione
-@cindex locali, variabili, per una funzione
+@cindex variabili @subentry locali @subentry in una funzione
+@cindex locali @subentry variabili, in una funzione
Diversamente da molti altri linguaggi, non c'@`e modo di
rendere locale una variabile in un blocco @code{@{} @dots{} @code{@}} di
@command{awk}, ma si pu@`o rendere locale una variabile di una funzione. @`E
@@ -21796,7 +21916,7 @@ quando la funzione @`e chiamata, nel rispetto della
regola seguente:
se l'argomento @`e una variabile di tipo vettoriale, questa @`e passata
per riferimento. Altrimenti, l'argomento @`e passato per valore.
-@cindex chiamare per valore
+@cindex chiamare @subentry funzione @subentry per valore
Passare un argomento per valore significa che quando una funzione @`e chiamata,
le viene fornita una @emph{copia} del valore di quell'argomento. Il chiamante
pu@`o usare una variabile il cui valore calcolato viene passato come
argomento, ma la
@@ -21837,9 +21957,9 @@ calcolato. Se la variabile @code{stringa} esiste anche
al di fuori di
esterno, perch@'e esso rimane oscurato durante l'esecuzione di
@code{mia_funzione()} e non pu@`o quindi essere visto o modificato.
-@cindex chiamare per riferimento
-@cindex vettori, come parametri di funzione
-@cindex funzioni, vettori come parametri di
+@cindex chiamare @subentry funzione @subentry per riferimento
+@cindex vettori @subentry come parametri di funzione
+@cindex funzioni @subentry vettori come parametri di
Tuttavia, quando sono dei vettori a fungere da parametri alle funzioni, questi
@emph{non} vengono copiati. Invece, il vettore stesso @`e reso disponibile per
essere manipolato direttamente dalla funzione. Questo @`e quel che si dice
@@ -21874,8 +21994,8 @@ stampa @samp{a[1] = 1, a[2] = due, a[3] = 3}, perch@'e
@node Precisazioni sulle funzioni
@subsubsection Cose a cui prestare attenzione
-@cindex indefinite, funzioni
-@cindex funzioni indefinite
+@cindex indefinite @subentry funzioni
+@cindex funzioni @subentry indefinite
Alcune implementazioni di @command{awk} consentono di chiamare una
funzione che non @`e stata definita.
Viene solo emesso un messaggio che descrive il problema al momento
@@ -21900,16 +22020,16 @@ non @`e un problema reale il fatto che
che @code{pippo()} non sia stato definito. Solitamente, tuttavia,
@`e un problema se un programma chiama una funzione indefinita.
-@cindex @dfn{lint}, controlli, funzione indefinita
-@cindex controlli @dfn{lint} per funzione indefinita
-@cindex funzione indefinita, controlli @dfn{lint} per
+@cindex @dfn{lint} @subentry controlli @subentry funzione indefinita
+@cindex controllo @subentry @dfn{lint} @subentry per funzione indefinita
+@cindex funzione @subentry indefinita @subentry controlli @dfn{lint} per
Se si specifica l'opzione @option{--lint}
(@pxref{Opzioni}),
@command{gawk} elenca le chiamate a funzioni indefinite.
-@cindex portabilit@`a, istruzione @code{next} in funzioni definite dall'utente
-@cindex @code{next}, istruzione, in funzioni definite dall'utente
+@cindex portabilit@`a @subentry istruzione @code{next} in funzioni definite
dall'utente
+@cindex @code{next} (istruzione) @subentry in funzioni definite dall'utente
Alcune implementazione di @command{awk} emettono un messaggio di errore
se si usa l'istruzione @code{next}
o @code{nextfile}
@@ -21961,8 +22081,8 @@ corretto).
@node Istruzione return
@subsection L'istruzione @code{return}
-@cindex @code{return}, istruzione@comma{} in funzioni definite dall'utente
-@cindex istruzione @code{return}@comma{} in funzioni definite dall'utente
+@cindex @code{return} (istruzione) @subentry in funzioni definite dall'utente
+@cindex istruzione @subentry @code{return} @subentry in funzioni definite
dall'utente
Come visto in parecchi esempi precedenti,
il corpo di una funzione definita dall'utente pu@`o contenere un'istruzione
@@ -22016,8 +22136,8 @@ function massimo(vettore, i, max)
@}
@end example
-@cindex programmazione, convenzioni di, parametri di funzione
-@cindex convenzioni di programmazione, parametri di funzione
+@cindex programmazione @subentry convenzioni di @subentry parametri di funzione
+@cindex convenzioni di programmazione @subentry parametri di funzione
@noindent
La chiamata a @code{massimo()} ha un solo argomento, che @`e il nome di
un vettore. Le variabili locali @code{i} e @code{max} non vanno intese
@@ -22103,11 +22223,11 @@ esserne a conoscenza.
@node Chiamate indirette
@section Chiamate indirette di funzione
-@cindex indiretta, chiamata di funzione
-@cindex chiamata indiretta di funzione
-@cindex funzione, puntatori a
+@cindex indiretta @subentry chiamata di funzione
+@cindex chiamare @subentry funzione @subentry indirettamente
+@cindex funzione @subentry puntatori a
@cindex puntatori a funzioni
-@cindex differenze tra @command{awk} e @command{gawk}, chiamata indiretta di
funzione
+@cindex differenze tra @command{awk} e @command{gawk} @subentry chiamata
indiretta di funzione
Questa sezione descrive un'estensione avanzata, specifica di @command{gawk}.
@@ -22161,8 +22281,10 @@ Con la chiamata @dfn{indiretta} di funzione, si pu@`o
richiedere a @command{gawk
di usare il @emph{valore} di una variabile come @emph{nome} della funzione da
chiamare.
-@cindex @code{@@}, notazione per la chiamata indiretta di funzioni
-@cindex chiamata indiretta di funzioni, notazione @code{@@}
+@cindex @code{@@} (chiocciola) @subentry @code{@@}-notazione per la chiamata
indiretta di funzioni
+@cindex chiocciola (@code{@@}) @subentry @code{@@}-notazione per la chiamata
indiretta di funzioni
+@cindex chiamare @subentry funzione @subentry indirettamente, notazione
@code{@@}
+@cindex indiretta @subentry chiamata di funzione @subentry @code{@@}-notazione
La sintassi @`e simile a quella di una normale chiamata di funzione:
un identificativo, seguito immediatamente da una parentesi aperta,
qualche argomento, e una parentesi chiusa, con l'aggiunta di un carattere
@@ -22612,8 +22734,8 @@ imparare. @`E composta dai seguenti capitoli:
@node Funzioni di libreria
@chapter Una libreria di funzioni @command{awk}
@cindex libreria di funzioni @command{awk}
-@cindex funzioni di libreria
-@cindex funzioni definite dall'utente, libreria di
+@cindex funzioni @subentry di libreria
+@cindex funzione definita dall'utente @subentry libreria di
@iftex
La
@@ -22677,7 +22799,7 @@ generale, e volesse metterle a disposizione della
comunit@`a degli utenti di
@ref{Come contribuire}.
@end ifclear
-@cindex portabilit@`a, programmi di esempio
+@cindex portabilit@`a @subentry programmi di esempio
I programmi contenuti in questo @value{CHAPTER} e in
@ref{Programmi di esempio},
utilizzano anche le funzionalit@`a specifiche di @command{gawk}.
@@ -22698,9 +22820,9 @@ per evitare di leggere gli input ancora non letti dal
file in input corrente.
@item
@c 12/2000: Thanks to Nelson Beebe for pointing out the output issue.
-@cindex distinzione maiuscolo/minuscolo, programmi di esempio
-@cindex @code{IGNORECASE}, variabile, nei programmi di esempio
-@cindex variabile @code{IGNORECASE}, nei programmi di esempio
+@cindex distinzione maiuscolo/minuscolo @subentry programmi di esempio
+@cindex @code{IGNORECASE} (variabile) @subentry programmi di esempio
+@cindex variabile @subentry @code{IGNORECASE} @subentry programmi di esempio
Infine, alcuni dei programmi scelgono di ignorare la distinzione tra maiuscolo
e
minuscolo nei loro input, assegnando il valore uno a @code{IGNORECASE}.
Si pu@`o ottenere quasi lo stesso effetto@footnote{I risultati non sono
identici.
@@ -22739,21 +22861,21 @@ di tipo stringa usate nei confronti utilizzano solo
lettere minuscole.
@node Nomi di variabili di libreria
@section Dare un nome a variabili globali in funzioni di libreria
-@cindex nomi di vettore/variabile
-@cindex nomi di funzione
+@cindex nomi @subentry di vettore/variabile
+@cindex nomi @subentry di funzione
@cindex questioni sui nomi permessi
-@cindex nomi permessi, questioni sui
-@cindex programmi @command{awk}, documentazione
-@cindex documentazione, di programmi @command{awk}
+@cindex nomi @subentry permessi @subentry questioni sui
+@cindex programmi @command{awk} @subentry documentazione dei
+@cindex programmi @command{awk} @subentry documentazione dei
Per come si @`e sviluppato il linguaggio @command{awk}, le variabili sono
o @dfn{globali} (usabili dall'intero programma) o @dfn{locali} (usabili solo
in una specifica funzione). Non c'@`e uno stato intermedio analogo alle
variabili @code{statiche} in C.
-@cindex variabili globali, per funzioni di libreria
-@cindex globali, variabili, per funzioni di libreria
-@cindex private, variabili
-@cindex variabili private
+@cindex variabili @subentry globali @subentry per funzioni di libreria
+@cindex globali @subentry variabili @subentry per funzioni di libreria
+@cindex private @subentry variabili
+@cindex variabili @subentry private
Le funzioni di libreria hanno spesso necessit@`a di avere variabili globali da
usare per conservare informazioni di stato tra successive chiamate alla
funzione; per esempio, la variabile di @code{getopt()} @code{_opti}
@@ -22768,8 +22890,8 @@ un utente. Per esempio, un nome come @code{i} o
@code{j} non @`e una buona
scelta, perch@'e i programmi a livello utente usano spesso nomi di variabile
come
questi per le proprie elaborazioni.
-@cindex convenzioni di programmazione, nomi di variabili private
-@cindex programmazione, convenzioni di, nomi di variabili private
+@cindex convenzioni di programmazione @subentry nomi di variabili private
+@cindex programmazione @subentry convenzioni di @subentry nomi di variabili
private
I programmi di esempio mostrati in questo @value{CHAPTER} usano per le
loro variabili private nomi che iniziano con un trattino basso(@samp{_}).
Generalmente gli utenti
@@ -22777,8 +22899,8 @@ non usano trattini bassi iniziali nei nomi di
variabile, cos@`{@dotless{i}} ques
riduce le possibilit@`a che il nome di variabile coincida con un nome usato
nel programma dell'utente.
-@cindex @code{_} (trattino basso), nei nomi di variabili private
-@cindex trattino basso (@code{_}), nei nomi di variabili private
+@cindex @code{_} (trattino basso) @subentry nei nomi di variabili private
+@cindex trattino basso (@code{_}) @subentry nei nomi di variabili private
Inoltre, parecchie funzioni di libreria usano un prefisso che suggerisce
quale funzione o gruppo di funzioni usa quelle variabili; per esempio,
@code{_pw_byname()} nelle routine che consultano la lista degli utenti
@@ -22802,8 +22924,8 @@ mentre il fatto che
il nome della variabile non @`e tutto in lettere maiuscole indica che la
variabile
non @`e una delle variabili predefinite di @command{awk}, come @code{FS}.
-@cindex @option{--dump-variables}, opzione, uso per funzioni di libreria
-@cindex opzione @option{--dump-variables}, uso per funzioni di libreria
+@cindex @option{--dump-variables} (opzione) @subentry uso per funzioni di
libreria
+@cindex opzione @subentry @option{--dump-variables} @subentry uso per funzioni
di libreria
@`E importante anche che @emph{tutte} le variabili nelle funzioni di libreria
che non abbiano la necessit@`a di essere
conservate per tutta la durata del
@@ -22823,9 +22945,9 @@ function lib_func(x, y, l1, l2)
@}
@end example
-@cindex vettori associativi, funzioni di libreria e
-@cindex libreria di funzioni @command{awk}, vettori associativi e
-@cindex funzioni, libreria di, vettori associativi e
+@cindex vettori @subentry associativi @subentry funzioni di libreria e
+@cindex libreria di funzioni @command{awk} @subentry vettori associativi e
+@cindex funzioni @subentry libreria di @subentry vettori associativi e
@cindex Tcl
Una differente convenzione, comune nella comunit@`a Tcl, @`e quella di usare un
solo vettore associativo che contiene i valori necessari alle funzioni di
@@ -22981,11 +23103,11 @@ predefinita @code{strtonum()}.
@subsection Asserzioni
@cindex asserzioni
-@cindex @code{assert()}, funzione (libreria C)
-@cindex funzione @code{assert()} (libreria C)
-@cindex libreria di funzioni @command{awk}, asserzioni
-@cindex funzioni, libreria di, asserzioni
-@cindex @command{awk}, asserzioni in programmi lunghi
+@cindex @code{assert()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{assert()}
+@cindex libreria di funzioni @command{awk} @subentry asserzioni
+@cindex funzioni @subentry libreria di @subentry asserzioni
+@cindex programmi @command{awk} @subentry asserzioni in programmi lunghi
Quando si scrivono grossi programmi, spesso @`e utile sapere se
una condizione o una serie di condizioni @`e verificata oppure no.
Prima di procedere
@@ -23018,8 +23140,8 @@ Se l'asserzione @`e falsa, il programma stampa un
messaggio simile a questo:
prog.c:5: asserzione falsa: `a <= 5 && b >= 17.1'
@end example
-@cindex @code{assert()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{assert()}
+@cindex @code{assert()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{assert()}
Il linguaggio C rende possibile trasformare questa condizione in una stringa
da
usare per stampare il messaggio di diagnosi. Ci@`o in @command{awk} non @`e
@@ -23095,8 +23217,8 @@ Se l'asserzione non @`e verificata, si vedr@`a un
messaggio simile a questo:
mydata:1357: asserzione falsa: a <= 5 && b >= 17.1
@end example
-@cindex @code{END}, criterio di ricerca, funzione definita dall'utente
@code{assert()} e
-@cindex criterio di ricerca @code{END}, funzione definita dall'utente
@code{assert()} e
+@cindex @code{END} (regola) @subentry funzione definita dall'utente
@code{assert()} e
+@cindex regola @subentry @code{END} @subentry funzione definita dall'utente
@code{assert()} e
C'@`e un piccolo problema con questa versione di @code{assert()}.
Come visto, una regola @code{END} viene automaticamente aggiunta al programma
che chiama @code{assert()}. Normalmente, se un programma consiste
@@ -23106,8 +23228,8 @@ vengono letti. Tuttavia, ora che il programma ha una
regola @code{END},
(@pxref{Usare BEGIN/END}), provocando molto probabilmente la sospensione del
programma come se rimanesse in attesa di input.
-@cindex @code{BEGIN}, criterio di ricerca, funzione definita dall'utente
@code{assert()} e
-@cindex criterio di ricerca @code{BEGIN}, funzione definita dall'utente
@code{assert()} e
+@cindex @code{BEGIN} (regola) @subentry funzione definita dall'utente
@code{assert()} e
+@cindex regola @subentry @code{BEGIN} @subentry funzione definita dall'utente
@code{assert()} e
C'@`e un modo per aggirare questo problema:
assicurarsi che la regola @code{BEGIN} termini sempre
con un'istruzione @code{exit}.
@@ -23115,16 +23237,16 @@ con un'istruzione @code{exit}.
@node Funzione round
@subsection Arrotondamento di numeri
-@cindex arrotondare numeri
-@cindex numeri, arrotondamento di
-@cindex libreria di funzioni @command{awk}, arrotondamento di numeri
-@cindex funzioni, libreria di, arrotondamento di numeri
-@cindex @code{print}, istruzione, funzione @code{sprintf()} e
-@cindex istruzione @code{print}, funzione @code{sprintf()} e
-@cindex @code{printf}, istruzione, funzione @code{sprintf()} e
-@cindex istruzione @code{printf}, funzione @code{sprintf()} e
-@cindex @code{sprintf()}, funzione, istruzioni @code{print}/@code{printf} e
-@cindex funzione @code{sprintf()}, istruzioni @code{print}/@code{printf} e
+@cindex arrotondare @subentry numeri
+@cindex numeri @subentry arrotondamento
+@cindex libreria di funzioni @command{awk} @subentry arrotondamento di numeri
+@cindex funzioni @subentry libreria di @subentry arrotondamento di numeri
+@cindex @code{print} (istruzione) @subentry funzione @code{sprintf()} e
+@cindex istruzione @subentry @code{print} @subentry funzione @code{sprintf()} e
+@cindex @code{printf} (istruzione) @subentry funzione @code{sprintf()} e
+@cindex istruzione @subentry @code{printf} @subentry funzione @code{sprintf()}
e
+@cindex @code{sprintf()} (funzione) @subentry istruzioni
@code{print}/@code{printf} e
+@cindex funzione @subentry @code{sprintf()} @subentry istruzioni
@code{print}/@code{printf} e
Il modo in cui @code{printf} e @code{sprintf()}
(@pxref{Printf})
effettuano l'arrotondamento spesso dipende dalla subroutine C @code{sprintf()}
@@ -23139,8 +23261,8 @@ arrotondamento tradizionale; potrebbe essere utile nel
caso in cui
l'istruzione @code{printf}
di @command{awk} che si sta usando faccia degli arrotondamenti statistici:
-@cindex @code{round()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{round()}
+@cindex @code{round()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{round()}
@example
@c file eg/lib/round.awk
# round.awk --- effettua arrotondamento tradizionale
@@ -23188,10 +23310,10 @@ function round(x, ival, aval, frazione)
@node Funzione random Cliff
@subsection Il generatore di numeri casuali Cliff
-@cindex numeri casuali, generatore Cliff
-@cindex Cliff, generatore di numeri casuali
-@cindex casuali, numeri, generatore Cliff di
-@cindex funzioni, libreria di, numeri casuali Cliff
+@cindex numeri @subentry casuali @subentry generatore Cliff
+@cindex Cliff @subentry generatore di numeri casuali
+@cindex casuali @subentry numeri @subentry generatore Cliff di
+@cindex funzioni @subentry libreria di @subentry numeri casuali Cliff
Il
@uref{http://mathworld.wolfram.com/CliffRandomNumberGenerator.html, generatore
di numeri casuali Cliff}
@@ -23200,8 +23322,8 @@ del rumore per la casualit@`a non mostrando di avere
alcuna struttura.''
@`E programmato in modo molto semplice, in meno di 10 righe di codice
@command{awk}:
-@cindex @code{cliff_rand()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{cliff_rand()}
+@cindex @code{cliff_rand()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{cliff_rand()}
@example
@c file eg/lib/cliff_rand.awk
# cliff_rand.awk --- generare numeri casuali con algoritmo di Cliff
@@ -23236,10 +23358,10 @@ non @`e abbastanza casuale, si pu@`o tentare di usare
al suo posto questa funzio
@node Funzioni ordinali
@subsection Tradurre tra caratteri e numeri
-@cindex libreria di funzioni @command{awk}, valori di carattere come numeri
-@cindex funzioni, libreria di, valori di carattere come numeri
-@cindex carattere, valore come numero
-@cindex numeri, come valori di carattere
+@cindex libreria di funzioni @command{awk} @subentry valori di carattere come
numeri
+@cindex funzioni @subentry libreria di @subentry valori di carattere come
numeri
+@cindex caratteri @subentry valore come numero
+@cindex numeri @subentry come valori di carattere
Un'implementazione commerciale di @command{awk} fornisce una funzione
predefinita @code{ord()}, che prende un carattere e restituisce il valore
numerico per quel carattere nella rappresentazione dei caratteri
@@ -23253,12 +23375,12 @@ Entrambe le funzioni si possono scrivere molto bene
usando @command{awk};
non vi @`e nessun reale motivo per inglobarle come funzioni predefinite
@command{awk}:
-@cindex @code{ord()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{ord()}
-@cindex @code{chr()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{chr()}
-@cindex @code{_ord_init()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{_ord_init()}
+@cindex @code{ord()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{ord()}
+@cindex @code{chr()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{chr()}
+@cindex @code{_ord_init()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{_ord_init()}
@example
@c file eg/lib/ord.awk
# ord.awk --- implementa ord e chr
@@ -23306,8 +23428,8 @@ function _ord_init( basso, alto, i, t)
@cindex ASCII
@cindex EBCDIC
@cindex Unicode
-@cindex bit di parit@`a (in ASCII)
-@cindex @dfn{mark}, bit di parit@`a (in ASCII)
+@cindex bit @subentry di parit@`a (in ASCII)
+@cindex @dfn{mark} (bit di parit@`a in ASCII)
Alcune spiegazioni riguardo ai numeri usati da @code{_ord_init()}
non guastano.
La serie di caratteri pi@`u importante oggi in uso @`e nota come
@@ -23372,10 +23494,10 @@ la funzione. @`E commentato, per poter essere
eventualmente usato in produzione
@node Funzione join
@subsection Trasformare un vettore in una sola stringa
-@cindex libreria di funzioni @command{awk}, trasformare vettori in stringhe
-@cindex funzioni, libreria di, trasformare vettori in stringhe
-@cindex stringhe, trasformare vettori in
-@cindex vettori, trasformare in stringhe
+@cindex libreria di funzioni @command{awk} @subentry trasformare vettori in
stringhe
+@cindex funzioni @subentry libreria di @subentry trasformare vettori in
stringhe
+@cindex stringa @subentry trasformare vettore in
+@cindex vettori @subentry trasformare in stringhe
Quando si fanno elaborazioni su stringhe, spesso @`e utile poter unire
tutte le stringhe di un vettore in una lunga stringa. La funzione seguente,
@code{join()}, svolge questo compito. Verr@`a utilizzata nel seguito in
diversi
@@ -23396,8 +23518,8 @@ siano numerici---una supposizione logica, dato che il
vettore probabilmente @`e
stato creato con @code{split()}
(@pxref{Funzioni per stringhe}):
-@cindex @code{join()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{join()}
+@cindex @code{join()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{join()}
@example
@c file eg/lib/join.awk
# join.awk --- trasforma un vettore in una stringa
@@ -23442,11 +23564,11 @@ sulle stringhe pi@`u difficili di quanto potrebbero
essere.}
@node Funzione getlocaltime
@subsection Gestione dell'ora del giorno
-@cindex libreria di funzioni @command{awk}, gestire ora del giorno (marcature
temporali)
-@cindex funzioni, libreria di, gestione delle ore del giorno
-@cindex data e ora, formattate
-@cindex marcature temporali, formattate
-@cindex ora del giorno, gestire
+@cindex libreria di funzioni @command{awk} @subentry gestire ora del giorno
(marcature temporali)
+@cindex funzioni @subentry libreria di @subentry gestione delle ore del giorno
+@cindex data e ora @subentry formattazione
+@cindex marcature temporali @subentry formattate
+@cindex ora del giorno @subentry gestire
Le funzioni @code{systime()} e @code{strftime()} descritte nella
@ref{Funzioni di tempo}
forniscono la funzionalit@`a minima necessaria per visualizzare l'ora del
giorno
@@ -23458,8 +23580,8 @@ La seguente funzione, @code{getlocaltime()}, riempie un
vettore fornito
dall'utente con informazioni sul tempo preformattate. Restituisce una stringa
con data e ora corrente formattata come nel programma di utilit@`a
@command{date}:
-@cindex @code{getlocaltime()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getlocaltime()}
+@cindex @code{getlocaltime()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getlocaltime()}
@example
@c file eg/lib/gettime.awk
# getlocaltime.awk --- ottiene l'ora del giorno in un formato usabile
@@ -23575,8 +23697,8 @@ Funziona, ma non @`e detto che sia efficiente.
La funzione seguente, basata su un suggerimento di Denis Shirokov,
legge l'intero contenuto del file in un colpo solo:
-@cindex @code{readfile()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{readfile()}
+@cindex @code{readfile()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{readfile()}
@example
@c file eg/lib/readfile.awk
# readfile.awk --- legge un intero file in un colpo solo
@@ -23716,10 +23838,10 @@ function shell_quote(s, # parametro
@node Gestione File Dati
@section Gestione di @value{DF}
-@cindex file, gestione di
+@cindex file @subentry gestione di
@cindex gestione di file
-@cindex libreria di funzioni @command{awk}, gestire file di dati
-@cindex funzioni, libreria di, gestire file di dati
+@cindex libreria di funzioni @command{awk} @subentry gestire file di dati
+@cindex funzioni @subentry libreria di @subentry gestire file di dati
Questa @value{SECTION} presenta funzioni utili per gestire
@value{DF} da riga di comando.
@@ -23737,8 +23859,8 @@ Questa @value{SECTION} presenta funzioni utili per
gestire
@node Funzione filetrans
@subsection Trovare i limiti dei @value{DF}
-@cindex file, gestione di, limiti dei file-dati
-@cindex file, inizializzazione e pulizia
+@cindex file @subentry gestione di @subentry limiti dei file-dati
+@cindex file @subentry inizializzazione e pulizia
Ognuna delle regole @code{BEGIN} ed @code{END} viene eseguita esattamente
solo una volta, rispettivamente all'inizio e alla fine del programma
@command{awk} (@pxref{BEGIN/END}).
@@ -23809,10 +23931,10 @@ regola @code{END} contenuta nel programma
``principale'',
chiamata per prima. Ancora una volta, l'utilit@`a di poter avere pi@`u regole
@code{BEGIN} ed @code{END} dovrebbe risultare chiara.
-@cindex @code{a_inizio_file()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{a_inizio_file()}
-@cindex @code{a_fine_file()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{a_fine_file()}
+@cindex @code{a_inizio_file()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{a_inizio_file()}
+@cindex @code{a_fine_file()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{a_fine_file()}
Se lo stesso @value{DF} compare due volte di fila sulla riga di comando,
@code{a_fine_file()} e @code{a_inizio_file()} non vengono eseguite alla fine
del primo
passaggio e all'inizio del secondo passaggio.
@@ -23874,8 +23996,7 @@ riferimento alla @ref{BEGINFILE/ENDFILE}.
@node Funzione rewind
@subsection Rileggere il file corrente
-@cindex file, leggere un
-@cindex file, rileggere un
+@cindex file @subentry rileggere
Un'altra richiesta per una nuova funzione predefinita @`e stata per
una funzione per rileggere il file corrente.
L'utente che l'ha richiesta non voleva dover usare @code{getline}
@@ -23887,8 +24008,8 @@ fare in modo di chiudere il corrente file in input
immediatamente
e ricominciare a leggerlo dall'inizio.
In mancanza di un nome migliore, chiameremo la funzione @code{rewind()}:
-@cindex @code{rewind()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{rewind()}
+@cindex @code{rewind()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{rewind()}
@example
@c file eg/lib/rewind.awk
# rewind.awk --- ricarica il file corrente e ricomincia a leggerlo
@@ -23962,9 +24083,9 @@ $ @kbd{gawk -f rewind.awk -f test.awk dati }
@node Controllo di file
@subsection Controllare che i @value{DF} siano leggibili
-@cindex risoluzione di problemi, leggibilit@`a file-dati
-@cindex leggibilit@`a, file-dati@comma{} controllare la
-@cindex file, non elaborare
+@cindex risoluzione di problemi @subentry leggibilit@`a file-dati
+@cindex leggibilit@`a @subentry di un file-dati @subentry controllare la
+@cindex file @subentry non elaborare
Normalmente, se si fornisce ad @command{awk} un @value{DF} che non @`e
leggibile,
il programma
si arresta con un errore fatale. Ci sono casi in cui sarebbe preferibile
@@ -23975,7 +24096,7 @@ Tuttavia, il codice qui proposto fornisce una soluzione
portabile.}
Si pu@`o far questo facendo precedere il proprio programma @command{awk} dal
seguente programma:
-@cindex @code{readable.awk}, programma
+@cindex @code{readable.awk} (programma)
@example
@c file eg/lib/readable.awk
# readable.awk --- file di libreria per saltare file non leggibili
@@ -24004,9 +24125,9 @@ BEGIN @{
@c endfile
@end example
-@cindex risoluzione di problemi, funzione @code{getline}
-@cindex comando @code{getline}, risoluzione di problemi
-@cindex @code{getline}, comando, risoluzione di problemi
+@cindex risoluzione di problemi @subentry funzione @code{getline}
+@cindex comando @subentry @code{getline} @subentry risoluzione di problemi
+@cindex @code{getline} (comando) @subentry risoluzione di problemi
Questo codice funziona, perch@'e l'errore di @code{getline} non @`e fatale.
Rimuovendo l'elemento da @code{ARGV} con @code{delete}
si tralascia il file (perch@'e non @`e pi@`u nella lista).
@@ -24039,7 +24160,7 @@ Usando la variabile @code{ARGIND} di @command{gawk}
di nome @code{zerofile()} che l'utente deve fornire. Gli argomenti passati
sono il @value{FN} e la posizione del file in @code{ARGV}:
-@cindex @code{zerofile.awk}, programma
+@cindex @code{zerofile.awk} (programma)
@example
@c file eg/lib/zerofile.awk
# zerofile.awk --- file di libreria per elaborare file in input vuoti
@@ -24089,9 +24210,9 @@ condizione del ciclo @code{for}, la verifica usa
l'operatore @samp{<=}, non
@node Ignorare assegnamenti di variabili
@subsection Trattare assegnamenti di variabile come @value{FNS}
-@cindex assegnamenti di variabile, visti come nomi di file
-@cindex file, nomi di, assegnamenti di variabile visti come
-@cindex nomi di file, assegnamenti di variabile visti come
+@cindex assegnamento @subentry di variabile @subentry visti come nomi di file
+@cindex file @subentry nomi di @subentry assegnamenti di variabile visti come
+@cindex nomi @subentry di file @subentry assegnamenti di variabile visti come
Occasionalmente, potrebbe essere pi@`u opportuno che @command{awk} non elabori
gli
assegnamenti di variabile presenti sulla riga di comando
(@pxref{Opzioni di assegnamento}).
@@ -24103,8 +24224,8 @@ Alcuni utenti hanno suggerito un'opzione aggiuntiva da
riga di comando per
Comunque, poche righe di codice di programmazione in un file di libreria
hanno lo stesso effetto:
-@cindex @code{noassign.awk}, programma
-@cindex programma @code{noassign.awk}
+@cindex @code{noassign.awk} (programma)
+@cindex programma @subentry @code{noassign.awk}
@example
@c file eg/lib/noassign.awk
# noassign.awk --- file di libreria per evitare la necessit@`a
@@ -24155,12 +24276,12 @@ non vengono modificati.
@node Funzione getopt
@section Elaborare opzioni specificate sulla riga di comando
-@cindex libreria di funzioni @command{awk}, opzioni sulla riga di comando
-@cindex funzioni, libreria di, opzioni sulla riga di comando
-@cindex riga di comando, opzioni, elaborazione di
-@cindex opzioni sulla riga di comando, elaborazione di
-@cindex funzioni, libreria di, libreria C
-@cindex argomenti, elaborazione di
+@cindex libreria di funzioni @command{awk} @subentry opzioni sulla riga di
comando
+@cindex funzioni @subentry libreria di @subentry opzioni sulla riga di comando
+@cindex riga di comando @subentry opzioni @subentry elaborazione di
+@cindex opzioni @subentry sulla riga di comando @subentry elaborazione di
+@cindex funzioni @subentry di libreria C
+@cindex argomenti @subentry elaborazione di
La maggior parte dei programmi di utilit@`a su sistemi compatibili con POSIX
prevedono opzioni presenti sulla riga di comando che possono essere usate per
cambiare il modo in cui un programma si comporta. @command{awk} @`e un
esempio di
@@ -24174,8 +24295,8 @@ come separatore di campo. La prima occorrenza, sulla
riga di comando, di
@option{--} o di una stringa che non inizia con @samp{-} segnala la fine
delle opzioni.
-@cindex @code{getopt()}, funzione (libreria C)
-@cindex funzione @code{getopt()} (libreria C)
+@cindex @code{getopt()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getopt()}
I moderni sistemi Unix hanno una funzione C chiamata @code{getopt()} per
elaborare gli argomenti presenti
sulla riga di comando. Il programmatore fornisce una
@@ -24291,8 +24412,8 @@ dividere le stringhe in caratteri singoli usando
@code{""} come separatore.
La spiegazione della funzione viene data
man mano che si elencano i pezzi di codice che la compongono:
-@cindex @code{getopt()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getopt()}
+@cindex @code{getopt()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getopt()}
@example
@c file eg/lib/getopt.awk
# getopt.awk --- imita in awk la funzione di libreria C getopt(3)
@@ -24336,8 +24457,8 @@ chiamata con una stringa di opzioni (il parametro
@code{opzioni}). Se
@code{opzioni} ha lunghezza zero, @code{getopt()} restituisce immediatamente
@minus{}1:
-@cindex @code{getopt()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getopt()}
+@cindex @code{getopt()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getopt()}
@example
@c file eg/lib/getopt.awk
function getopt(argc, argv, opzioni, unaopz, i)
@@ -24551,12 +24672,12 @@ usano @code{getopt()} per elaborare i propri
argomenti.
@node Funzioni Passwd
@section Leggere la lista degli utenti
-@cindex libreria di funzioni @command{awk}, leggere la lista degli utenti
-@cindex funzioni, libreria di, leggera la lista degli utenti
-@cindex utenti, leggere la lista degli
-@cindex lista degli utenti@comma{} leggere la
-@cindex @code{PROCINFO}, vettore
-@cindex vettore @code{PROCINFO}
+@cindex libreria di funzioni @command{awk} @subentry leggere la lista degli
utenti
+@cindex funzioni @subentry libreria di @subentry leggere la lista degli utenti
+@cindex utenti @subentry leggere la lista degli
+@cindex lista degli utenti @subentry leggere la
+@cindex @code{PROCINFO} (vettore)
+@cindex vettore @subentry @code{PROCINFO}
Il vettore @code{PROCINFO}
(@pxref{Variabili predefinite})
d@`a accesso ai numeri ID reale ed effettivo dell'utente e del gruppo e, se
@@ -24568,15 +24689,15 @@ sull'utente associate con i numeri ID dell'utente e
del gruppo. Questa
dalla lista gli utenti. @xref{Funzioni Group} per una raccolta di
funzioni simili per ottenere informazioni dalla lista dei gruppi.
-@cindex @code{getpwent()}, funzione (libreria C)
-@cindex funzione @code{getpwent()} (libreria C)
-@cindex @code{getpwent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwent()}
-@cindex utenti, informazioni riguardo agli, ottenere
-@cindex login, informazioni
-@cindex account, informazioni sugli
-@cindex password, file delle
-@cindex file delle password
+@cindex @code{getpwent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwent()}
+@cindex @code{getpwent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwent()}
+@cindex utenti @subentry informazioni riguardo agli @subentry ottenere
+@cindex login @subentry informazioni
+@cindex account @subentry informazioni sugli
+@cindex password @subentry file delle
+@cindex file @subentry delle password
Lo standard POSIX non definisce il file dove sono mantenute le informazioni
degli utenti. Invece, fornisce il file d'intestazione @code{<pwd.h>}
e diverse @dfn{subroutine} del linguaggio C per ottenere informazioni sugli
@@ -24590,7 +24711,7 @@ un file non accessibile dall'utente normale. La
struttura del file
@file{/etc/passwd} @`e rimasta la stessa, ma al posto del campo @dfn{password}
c'@`e una @code{x}.}
-@cindex @command{pwcat}, programma
+@cindex @command{pwcat} (programma)
Sebbene un programma @command{awk} possa semplicemente leggere
@file{/etc/passwd} direttamente, questo file pu@`o non contenere tutte le
informazioni su tutti gli utenti del sistema.@footnote{Capita spesso che le
@@ -24713,8 +24834,8 @@ comunemente una shell, come Bash.
Di seguito si riportano alcune righe di un possibile output di @command{pwcat}:
@cindex Jacobs, Andrew
-@cindex Robbins, Arnold
-@cindex Robbins, Miriam
+@cindex Robbins @subentry Arnold
+@cindex Robbins @subentry Miriam
@example
$ @kbd{pwcat}
@print{} root:x:0:1:Operator:/:/bin/sh
@@ -24732,8 +24853,8 @@ Dopo quest'introduzione, di seguito si riporta un
gruppo di funzioni per
ottenere informazioni sugli utenti. Ci sono diverse funzioni, che
corrispondono alle omonime funzioni C:
-@cindex @code{_pw_init()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{_pw_init()}
+@cindex @code{_pw_init()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{_pw_init()}
@example
@c file eg/lib/passwdawk.in
# passwd.awk --- accedere alle informazioni del file delle password
@@ -24787,8 +24908,8 @@ function _pw_init( oldfs, oldrs, olddol0, pwcat,
using_fw, using_fpat)
@c endfile
@end example
-@cindex @code{BEGIN}, criterio di ricerca, programma @code{pwcat}
-@cindex criterio di ricerca @code{BEGIN}, programma @code{pwcat}
+@cindex @code{BEGIN} (regola) @subentry programma @code{pwcat}
+@cindex regola @subentry @code{BEGIN} @subentry programma @code{pwcat}
La regola @code{BEGIN} imposta una variabile privata col nome
della directory in cui si
trova @command{pwcat}.
@@ -24805,10 +24926,10 @@ La variabile @code{_pw_inizializzato} @`e usata per
efficienza, poich@'e in questo modo @code{_pw_init()}
viene chiamata solo una volta.
-@cindex @code{PROCINFO}, vettore, verificare la divisione in campi
-@cindex vettore @code{PROCINFO}, verificare la divisione in campi
-@cindex @code{getline}, comando, funzione definita dall'utente,
@code{_pw_init()}
-@cindex comando @code{getline}, funzione definita dall'utente,
@code{_pw_init()}
+@cindex @code{PROCINFO} (vettore) @subentry verificare la divisione in campi
+@cindex vettore @subentry @code{PROCINFO} @subentry verificare la divisione in
campi
+@cindex @code{getline} (comando) @subentry funzione definita dall'utente,
@code{_pw_init()}
+@cindex comando @subentry @code{getline} @subentry funzione definita
dall'utente, @code{_pw_init()}
Poich@'e questa funzione usa @code{getline} per leggere informazioni da
@command{pwcat}, dapprima salva i valori di @code{FS}, @code{RS} e @code{$0}.
Annota nella variabile @code{using_fw} se la suddivisione in campi
@@ -24835,16 +24956,16 @@ impostando @code{@w{_pw_inizializzato}} a uno, e
ripristinando @code{FS}
se necessario), @code{RS} e @code{$0}.
L'uso di @code{@w{_pw_contatore}} verr@`a spiegato a breve.
-@cindex @code{getpwnam()}, funzione (libreria C)
-@cindex funzione @code{getpwnam()} (libreria C)
+@cindex @code{getpwnam()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwnam()}
La funzione @code{getpwnam()} ha un nome utente come argomento di tipo
stringa. Se
quell'utente @`e presente nella lista, restituisce la riga appropriata.
Altrimenti, il riferimento a un elemento inesistente del vettore
aggiunge al vettore stesso un elemento il cui valore @`e la stringa nulla:
-@cindex @code{getpwnam()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwnam()}
+@cindex @code{getpwnam()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwnam()}
@example
@group
@c file eg/lib/passwdawk.in
@@ -24857,15 +24978,15 @@ function getpwnam(nome)
@end group
@end example
-@cindex @code{getpwuid()}, funzione (libreria C)
-@cindex funzione @code{getpwuid()} (libreria C)
+@cindex @code{getpwuid()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwuid()}
In modo simile, la funzione @code{getpwuid()} ha per argomento
il numero ID di un utente.
Se un utente con quel numero si trova nella lista, restituisce la riga
appropriata. Altrimenti restituisce la stringa nulla:
-@cindex @code{getpwuid()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwuid()}
+@cindex @code{getpwuid()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwuid()}
@example
@c file eg/lib/passwdawk.in
function getpwuid(uid)
@@ -24876,14 +24997,14 @@ function getpwuid(uid)
@c endfile
@end example
-@cindex @code{getpwent()}, funzione (libreria C)
-@cindex funzione @code{getpwent()} (libreria C)
+@cindex @code{getpwent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwent()}
La funzione @code{getpwent()} scorre semplicemnte la lista, un elemento
alla volta. Usa @code{_pw_contatore} per tener traccia della posizione
corrente
nel vettore @code{_pw_bycount}:
-@cindex @code{getpwent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwent()}
+@cindex @code{getpwent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwent()}
@example
@c file eg/lib/passwdawk.in
function getpwent()
@@ -24896,13 +25017,13 @@ function getpwent()
@c endfile
@end example
-@cindex @code{endpwent()}, funzione (libreria C)
-@cindex funzione @code{endpwent()} (libreria C)
+@cindex @code{endpwent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{endpwent()}
La funzione @code{@w{endpwent()}} reimposta @code{@w{_pw_contatore}} a zero,
in modo che chiamate successive a @code{getpwent()} ricomincino da capo:
-@cindex @code{endpwent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{endpwent()}
+@cindex @code{endpwent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{endpwent()}
@example
@c file eg/lib/passwdawk.in
function endpwent()
@@ -24951,19 +25072,19 @@ usa queste funzioni.
@node Funzioni Group
@section Leggere la lista dei gruppi
-@cindex libreria di funzioni @command{awk}, leggere la lista dei gruppi
-@cindex funzioni, libreria di, leggere la lista dei gruppi
-@cindex gruppi, lista dei, leggere la
-@cindex lista dei gruppi, leggere la
-@cindex @code{PROCINFO}, vettore, appartenenza a gruppi e
-@cindex @code{getgrent()}, funzione (libreria C)
-@cindex funzione @code{getgrent()} (libreria C)
-@cindex @code{getgrent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrent()}
-@cindex gruppi@comma{} informazioni su
-@cindex account, informazioni sugli
-@cindex gruppi, file dei
-@cindex file dei gruppi
+@cindex libreria di funzioni @command{awk} @subentry leggere la lista dei
gruppi
+@cindex funzioni @subentry libreria di @subentry leggere la lista dei gruppi
+@cindex gruppi @subentry lista dei @subentry leggere la
+@cindex lista dei gruppi @subentry leggere la
+@cindex @code{PROCINFO} (vettore) @subentry appartenenza a gruppi e
+@cindex @code{getgrent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrent()}
+@cindex @code{getgrent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrent()}
+@cindex gruppi @subentry informazioni sui
+@cindex account @subentry informazioni sugli
+@cindex gruppi @subentry file dei
+@cindex file @subentry dei gruppi
Molto di quel che @`e stato detto
@iftex
nella
@@ -24986,8 +25107,8 @@ piccolo programma in C che genera la lista dei gruppi
come suo output.
@command{grcat}, un programma in C che fornisce la lista dei gruppi,
@`e il seguente:
-@cindex @command{grcat}, programma C
-@cindex programma C, @command{grcat}
+@cindex @command{grcat} (programma C)
+@cindex programma C @subentry @command{grcat}
@example
@c file eg/lib/grcat.c
/*
@@ -25115,10 +25236,10 @@ Qui ci sono le funzioni per ottenere informazioni
relative alla lista dei
gruppi. Ce ne sono diverse, costruite sul modello delle omonime funzioni della
libreria C:
-@cindex @code{getline}, comando, funzione definita dall'utente,
@code{_gr_init()}
-@cindex comando @code{getline}, funzione definita dall'utente,
@code{_gr_init()}
-@cindex @code{_gr_init()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{_gr_init()}
+@cindex @code{getline} (comando) @subentry funzione definita dall'utente,
@code{_gr_init()}
+@cindex comando @subentry @code{getline} @subentry funzione definita
dall'utente, @code{_gr_init()}
+@cindex @code{_gr_init()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{_gr_init()}
@example
@c file eg/lib/groupawk.in
# group.awk --- funzioni per il trattamento del file dei gruppi
@@ -25235,16 +25356,16 @@ Infine, @code{_gr_init()} chiude la @dfn{pipe} a
@command{grcat}, ripristina
@code{$0}, inizializza @code{_gr_contatore} a zero
(per essere usato pi@`u tardi), e rende @code{_gr_inizializzato} diverso da
zero.
-@cindex @code{getgrnam()}, funzione (libreria C)
-@cindex funzione @code{getgrnam()} (libreria C)
+@cindex @code{getgrnam()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrnam()}
La funzione @code{getgrnam()} ha come argomento un nome di gruppo, e se quel
gruppo esiste, viene restituito.
Altrimenti, il riferimento a un elemento inesistente del vettore
aggiunge al vettore stesso un elemento il cui valore @`e la stringa nulla:
-@cindex @code{getgrnam()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrnam()}
+@cindex @code{getgrnam()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrnam()}
@example
@c file eg/lib/groupawk.in
function getgrnam(group)
@@ -25255,13 +25376,13 @@ function getgrnam(group)
@c endfile
@end example
-@cindex @code{getgrgid()}, funzione (libreria C)
-@cindex funzione @code{getgrgid()} (libreria C)
+@cindex @code{getgrgid()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrgid()}
La funzione @code{getgrgid()} @`e simile; ha come argomento un numero ID di
gruppo e controlla le informazioni assiciate con quell'ID di gruppo:
-@cindex @code{getgrgid()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrgid()}
+@cindex @code{getgrgid()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrgid()}
@example
@c file eg/lib/groupawk.in
function getgrgid(gid)
@@ -25272,13 +25393,13 @@ function getgrgid(gid)
@c endfile
@end example
-@cindex @code{getgruser()}, funzione (libreria C)
-@cindex funzione @code{getgruser()} (libreria C)
+@cindex @code{getgruser()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgruser()}
La funzione @code{getgruser()} non ha un equivalente in C. Ha come argomento un
nome-utente e restituisce l'elenco dei gruppi di cui l'utente @`e membro:
-@cindex @code{getgruser()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgruser()}
+@cindex @code{getgruser()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgruser()}
@example
@c file eg/lib/groupawk.in
function getgruser(user)
@@ -25289,13 +25410,13 @@ function getgruser(user)
@c endfile
@end example
-@cindex @code{getgrent()}, funzione (libreria C)
-@cindex funzione @code{getgrent()} (libreria C)
+@cindex @code{getgrent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrent()}
La funzione @code{getgrent()} scorre la lista un elemento alla volta.
Usa @code{_gr_contatore} per ricordare la posizione corrente nella lista:
-@cindex @code{getgrent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrent()}
+@cindex @code{getgrent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrent()}
@example
@c file eg/lib/groupawk.in
function getgrent()
@@ -25310,13 +25431,13 @@ function getgrent()
@c endfile
@end example
-@cindex @code{endgrent()}, funzione (libreria C)
-@cindex funzione @code{endgrent()} (libreria C)
+@cindex @code{endgrent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{endgrent()}
La funzione @code{endgrent()} reimposta @code{_gr_contatore} a zero in modo che
@code{getgrent()} possa ricominciare da capo:
-@cindex @code{endgrent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{endgrent()}
+@cindex @code{endgrent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{endgrent()}
@example
@c file eg/lib/groupawk.in
function endgrent()
@@ -25358,8 +25479,8 @@ un vettore, stampando gli indici e i valori di ogni
elemento.
Viene chiamata col vettore e con una stringa che contiene il nome
del vettore:
-@cindex @code{walk_array()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{walk_array()}
+@cindex @code{walk_array()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{walk_array()}
@example
@c file eg/lib/walkarray.awk
function walk_array(vett, nome, i)
@@ -25595,9 +25716,8 @@ output identico a quello della versione originale.
@node Programmi di esempio
@chapter Programmi utili scritti in @command{awk}
-@cindex @command{awk}, programmi, esempi di
-@cindex programmi @command{awk}, esempi di
-@cindex esempi di programmi @command{awk}
+@cindex programmi @command{awk} @subentry esempi di
+@cindex esempio @subentry di programma @command{awk}
@c FULLXREF ON
@iftex
@@ -25680,8 +25800,8 @@ cut.awk -- -c1-8 i_miei_file > risultati
@node Cloni
@section Reinventare la ruota per divertimento e profitto
-@cindex programmi POSIX, implementazione in @command{awk}
-@cindex POSIX, programmi, implementazione in @command{awk}
+@cindex programmi POSIX @subentry implementazione in @command{awk}
+@cindex POSIX @subentry programmi @subentry implementazione in @command{awk}
Questa @value{SECTION} presenta un certo numero di programmi di utilit@`a
POSIX implementati in @command{awk}. Riscrivere questi programmi in
@@ -25712,10 +25832,10 @@ I programmi sono presentati in ordine alfabetico.
@node Programma cut
@subsection Ritagliare campi e colonne
-@cindex @command{cut}, programma di utilit@`a
-@cindex programma di utilit@`a @command{cut}
-@cindex campi, ritagliare
-@cindex colonne, ritagliare
+@cindex @command{cut} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{cut}
+@cindex campi @subentry ritagliare
+@cindex colonne @subentry ritagliare
Il programma di utilit@`a @command{cut} seleziona, o ``taglia'' (@dfn{cut}),
caratteri o campi dal suo standard input e li
spedisce al suo standard output.
@@ -25766,8 +25886,8 @@ di libreria necessarie, e una funzione
@code{sintassi()} che stampa un
messaggio ed esce. @code{sintassi()} @`e chiamato se si specificano degli
argomenti non validi:
-@cindex @code{cut.awk}, programma
-@cindex programma @code{cut.awk}
+@cindex @code{cut.awk} (programma)
+@cindex programma @subentry @code{cut.awk}
@example
@c file eg/prog/cut.awk
# cut.awk --- implementa cut in awk
@@ -25801,10 +25921,10 @@ function sintassi()
@c endfile
@end example
-@cindex @code{BEGIN}, criterio di ricerca, eseguire programmi @command{awk} e
-@cindex criterio di ricerca @code{BEGIN}, eseguire programmi @command{awk} e
-@cindex @code{FS}, variabile, eseguire programmi @command{awk} e
-@cindex variabile @code{FS}, eseguire programmi @command{awk} e
+@cindex @code{BEGIN} (regola) @subentry eseguire programmi @command{awk} e
+@cindex regola @subentry @code{BEGIN} @subentry eseguire programmi
@command{awk} e
+@cindex @code{FS} (variabile) @subentry eseguire programmi @command{awk} e
+@cindex variabile @subentry @code{FS} @subentry eseguire programmi
@command{awk} e
Subito dopo c'@`e una regola @code{BEGIN} che analizza le opzioni della riga
di comando.
Questa regola imposta @code{FS} a un solo carattere TAB, perch@'e quello @`e
@@ -25852,8 +25972,8 @@ BEGIN @{
@c endfile
@end example
-@cindex separatori di campo, spazi come
-@cindex spazi come separatori di campo
+@cindex separatore di campo @subentry spazi come
+@cindex spazi @subentry come separatore di campo
Nella scrittura del codice si deve porre particolare attenzione quando il
delimitatore di campo @`e uno spazio. Usare
un semplice spazio (@code{@w{" "}}) come valore per @code{FS} @`e
@@ -26048,11 +26168,11 @@ di suddividere la riga in input in singoli caratteri.
@node Programma egrep
@subsection Ricercare espressioni regolari nei file
-@cindex espressioni regolari, ricerca di
-@cindex ricercare, in file, espressioni regolari
-@cindex file, ricercare espressioni regolari nei
-@cindex @command{egrep}, programma di utilit@`a
-@cindex programma di utilit@`a @command{egrep}
+@cindex espressioni regolari @subentry ricerca di
+@cindex ricerca @subentry in file @subentry di espressioni regolari
+@cindex file @subentry ricercare espressioni regolari nei
+@cindex @command{egrep} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{egrep}
Il programma di utilit@`a @command{egrep} ricerca occorrenze di espressioni
regolari all'interno di file. Usa
espressioni regolari che sono quasi identiche a quelle disponibili in
@@ -26119,8 +26239,8 @@ da implementare con @command{gawk}; basta usare la
variabile predefinita
@code{IGNORECASE}
(@pxref{Variabili predefinite}):
-@cindex @code{egrep.awk}, programma
-@cindex programma @code{egrep.awk}
+@cindex @code{egrep.awk} (programma)
+@cindex programma @subentry @code{egrep.awk}
@example
@c file eg/prog/egrep.awk
# egrep.awk --- simula egrep in awk
@@ -26294,8 +26414,8 @@ possiamo stampare il @value{FN}, e quindi saltare al
file successivo con
Infine, ogni riga viene stampata, preceduta, se necessario, dal @value{FN} e
dai due punti (@code{:}):
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
@example
@c file eg/prog/egrep.awk
@{
@@ -26356,10 +26476,10 @@ function sintassi()
@node Programma id
@subsection Stampare informazioni sull'utente
-@cindex stampare informazioni utente
-@cindex utenti, informazioni riguardo agli, stampare
-@cindex @command{id}, programma di utilit@`a
-@cindex programma di utilit@`a @command{id}
+@cindex stampare @subentry informazioni utente
+@cindex utenti @subentry informazioni riguardo agli @subentry stampare
+@cindex @command{id} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{id}
Il programma di utilit@`a @command{id} elenca i numeri identificativi (ID)
reali ed effettivi di un utente, e l'insieme dei gruppi a cui l'utente
appartiene, se ve ne sono.
@@ -26373,8 +26493,8 @@ $ @kbd{id}
@print{} uid=1000(arnold) gid=1000(arnold)
groups=1000(arnold),4(adm),7(lp),27(sudo)
@end example
-@cindex @code{PROCINFO}, vettore, @dfn{process ID} di utente e di gruppo e
-@cindex vettore @code{PROCINFO}, @dfn{process ID} di utente e di gruppo e
+@cindex @code{PROCINFO} (vettore) @subentry @dfn{process ID} di utente e di
gruppo e
+@cindex vettore @subentry @code{PROCINFO} @subentry @dfn{process ID} di utente
e di gruppo e
Questa informazione @`e parte di ci@`o che @`e reso disponibile dal vettore
@code{PROCINFO} di @command{gawk} (@pxref{Variabili predefinite}).
Comunque, il programma di utilit@`a @command{id} fornisce un output pi@`u
@@ -26402,8 +26522,8 @@ l'ID reale dell'utente @`e divisa in parti, separate
tra loro da @samp{:}.
Il nome @`e il primo campo. Un codice analogo @`e usato per l'ID effettivo, e
per i numeri che descrivono i gruppi:
-@cindex @code{id.awk}, programma
-@cindex programma @code{id.awk}
+@cindex @code{id.awk} (programma)
+@cindex programma @subentry @code{id.awk}
@example
@c file eg/prog/id.awk
# id.awk --- implement id in awk
@@ -26509,9 +26629,9 @@ consente di risparmiare parecchie righe di programma.
@c FIXME: One day, update to current POSIX version of split
-@cindex file, splitting
-@cindex @code{split}, programma di utilit@`a
-@cindex programma di utilit@`a @code{split}
+@cindex file @subentry suddividere
+@cindex @code{split} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @code{split}
Il programma @command{split} divide grossi file di testo in pezzi pi@`u
piccoli.
La sua sintassi @`e la seguente:@footnote{Questo @`e la sintassi tradizionale.
La versione POSIX del comando ha una sintassi differente, ma per lo scopo di
@@ -26544,8 +26664,8 @@ numero in questione pu@`o apparire negativo, lo si fa
diventare positivo, e
viene usato per contare le righe. Il nome del @value{DF} @`e per ora ignorato
e l'ultimo argomento @`e usato come prefisso per i @value{FNS} in output:
-@cindex @code{split.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{split.awk}
+@cindex @code{split.awk} (programma)
+@cindex programma @subentry @code{split.awk}
@example
@c file eg/prog/split.awk
# split.awk --- comando split scritto in awk
@@ -26659,10 +26779,10 @@ anche il problema posto dalla codifica EBCDIC.
@node Programma tee
@subsection Inviare l'output su pi@`u di un file
-@cindex file, multipli@comma{} duplicare l'output su
-@cindex output, duplicarlo su pi@`u file
-@cindex @code{tee}, programma di utilit@`a
-@cindex programma di utilit@`a @code{tee}
+@cindex file @subentry multipli @subentry duplicare l'output su
+@cindex output @subentry duplicarlo su pi@`u file
+@cindex @code{tee} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @code{tee}
Il programma @code{tee} @`e noto come @dfn{pipe fitting} (tubo secondario).
@code{tee} copia il suo standard input al suo standard output e inoltre lo
duplica scrivendo sui file indicati nella riga di comando. La sua sintassi
@@ -26681,8 +26801,8 @@ sulla riga di comando, in un vettore di nome
@code{copia}.
@code{tee} non pu@`o usare @code{ARGV} direttamente, perch@'e @command{awk}
tenta
di elaborare ogni @value{FN} in @code{ARGV} come dati in input.
-@cindex flag, variabili di tipo
-@cindex variabili di tipo indicatore [@dfn{flag}]
+@cindex @dfn{flag} (indicatore), variabili di tipo
+@cindex variabili @subentry di tipo indicatore (@dfn{flag})
Se il primo argomento @`e @option{-a}, la variabile flag
@code{append} viene impostata a vero, e sia @code{ARGV[1]} che
@code{copia[1]} vengono cancellati. Se @code{ARGC} @`e minore di due, nessun
@@ -26691,8 +26811,8 @@ esce.
Infine, @command{awk} viene obbligato a leggere lo standard input
impostando @code{ARGV[1]} al valore @code{"-"} e @code{ARGC} a due:
-@cindex @code{tee.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{tee.awk}
+@cindex @code{tee.awk} (programma)
+@cindex programma @subentry @code{tee.awk}
@example
@c file eg/prog/tee.awk
# tee.awk --- tee in awk
@@ -26790,10 +26910,10 @@ END @{
@c FIXME: One day, update to current POSIX version of uniq
-@cindex stampare righe di testo non duplicate
-@cindex testo@comma{} stampare, righe non duplicate di
-@cindex @command{uniq}, programma di utilit@`a
-@cindex programma di utilit@`a @command{uniq}
+@cindex stampare @subentry righe di testo non duplicate
+@cindex testo @subentry stampare @subentry righe non duplicate di
+@cindex @command{uniq} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{uniq}
Il programma di utilit@`a @command{uniq} legge righe di dati ordinati sul suo
standard input, e per default rimuove righe duplicate. In altre parole,
stampa solo righe uniche; da cui il
@@ -26862,8 +26982,8 @@ ripetute che quelle non ripetute. Il file di output,
se specificato, @`e
assegnato a @code{file_output}. In precedenza, @code{file_output} @`e
inizializzato allo standard output, @file{/dev/stdout}:
-@cindex @code{uniq.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{uniq.awk}
+@cindex @code{uniq.awk} (programma)
+@cindex programma @subentry @code{uniq.awk}
@example
@c file eg/prog/uniq.awk
@group
@@ -27083,12 +27203,12 @@ programma per seguite questo suggerimento.
@c FIXME: One day, update to current POSIX version of wc
@cindex contare
-@cindex file in input, contare elementi nel
-@cindex parole, contare le
-@cindex caratteri, contare i
-@cindex righe, contare le
-@cindex @command{wc}, programma di utilit@`a
-@cindex programma di utilit@`a @command{wc}
+@cindex input @subentry contare elementi nel
+@cindex parole @subentry contare le
+@cindex caratteri @subentry contare i
+@cindex righe @subentry contare le
+@cindex @command{wc} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{wc}
Il programma di utilit@`a @command{wc} (@dfn{word count}, contatore di parole)
conta righe, parole, e caratteri in uno o pi@`u file in input. La sua sintassi
@`e la seguente:
@@ -27135,8 +27255,8 @@ La regola @code{BEGIN} si occupa degli argomenti. La
variabile
@code{stampa_totale} @`e vera se pi@`u di un file @`e presente sulla
riga di comando:
-@cindex @code{wc.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{wc.awk}
+@cindex @code{wc.awk} (programma)
+@cindex programma @subentry @code{wc.awk}
@example
@c file eg/prog/wc.awk
# wc.awk --- conta righe, parole, caratteri
@@ -27292,9 +27412,9 @@ Si spera che siano interessanti e divertenti.
@node Programma dupword
@subsection Trovare parole duplicate in un documento
-@cindex parole duplicate, ricerca di
-@cindex ricerca di parole
-@cindex documenti@comma{} ricerca in
+@cindex parole @subentry duplicate @subentry ricerca di
+@cindex ricerca @subentry di parole
+@cindex documenti @subentry ricerca in
Un errore comune quando si scrive un testo lungo @`e quello di ripetere
accidentalmente delle parole. Tipicamente lo si pu@`o vedere in testi del tipo
``questo questo programma fa quanto segue@dots{}'' Quando il testo @`e
pubblicato in rete, spesso
@@ -27328,8 +27448,8 @@ Se, dopo aver rimosso tutta la punteggiatura, non
rimane alcun campo, il
record corrente @`e saltato. In caso contrario, il programma esegue il ciclo
per ogni parola, confrontandola con quella che la precede:
-@cindex @code{dupword.awk}, programma
-@cindex programma @code{dupword.awk}
+@cindex @code{dupword.awk} (programma)
+@cindex programma @subentry @code{dupword.awk}
@example
@c file eg/prog/dupword.awk
# dupword.awk --- trova parole duplicate in un testo
@@ -27364,8 +27484,8 @@ per ogni parola, confrontandola con quella che la
precede:
@node Programma alarm
@subsection Un programma di sveglia
-@cindex insonnia, cura per
-@cindex Robbins, Arnold
+@cindex insonnia @subentry cura per
+@cindex Robbins @subentry Arnold
@quotation
@i{Nessuna cura contro l'insonnia @`e efficace quanto una sveglia che suona.}
@author Arnold Robbins
@@ -27397,8 +27517,8 @@ Aharon Robbins <address@hidden> wrote:
@author Erik Quanstrom
@end quotation
-@cindex tempo, sveglia, programma di esempio
-@cindex sveglia, programma di esempio
+@cindex tempo @subentry sveglia @subentry programma di esempio
+@cindex sveglia @subentry programma di esempio
Il seguente programma @`e un semplice programma di ``sveglia''.
Si pu@`o specificare un'ora del giorno e un messaggio opzionale. All'ora
specificata, il programma stampa il messaggio sullo standard output. Inoltre,
@@ -27414,6 +27534,7 @@ da
@end ifnottex
@ref{Funzione getlocaltime}.
+@cindex ASCII
Tutto il lavoro @`e svolto nella regola @code{BEGIN}. La prima parte @`e
il controllo degli argomenti e l'impostazione dei valori di default:
l'intervallo prima di ripetere, il contatore, e il messaggio da stampare.
@@ -27427,8 +27548,8 @@ Per amor di variet@`a, questo programma usa
un'istruzione @code{switch}
con una serie di istruzioni @code{if}-@code{else}.
Ecco il programma:
-@cindex @code{alarm.awk}, programma
-@cindex programma @code{alarm.awk}
+@cindex @code{alarm.awk} (programma)
+@cindex programma @subentry @code{alarm.awk}
@example
@c file eg/prog/alarm.awk
# alarm.awk --- impostare una sveglia
@@ -27530,8 +27651,8 @@ prima di far scattare la sveglia:
@c endfile
@end example
-@cindex @command{sleep}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sleep}
+@cindex @command{sleep} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sleep}
Infine, il programma usa la funzione @code{system()}
(@pxref{Funzioni di I/O})
per chiamare il programma di utilit@`a @command{sleep}. Il programma di
utilit@`a
@@ -27565,10 +27686,10 @@ per ritardare per il numero di secondi necessario:
@node Programma translate
@subsection Rimpiazzare o eliminare caratteri
-@cindex caratteri, rimpiazzare
-@cindex rimpiazzare caratteri
-@cindex @command{tr}, programma di utilit@`a
-@cindex programma di utilit@`a @command{tr}
+@cindex caratteri @subentry rimpiazzare
+@cindex rimpiazzare @subentry caratteri in un file
+@cindex @command{tr} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{tr}
Il programma di utilit@`a di sistema @command{tr} rimpiazza caratteri. Per
esempio, @`e spesso usato per trasformare lettere maiuscole in lettere
minuscole
in vista di ulteriori elaborazioni:
@@ -27634,8 +27755,8 @@ come stringa. Il programma principale imposta due
variabili globali, @code{DA}
Infine, la regola di elaborazione si limita a chiamare @code{traducilo()}
per ogni record:
-@cindex @code{translate.awk}, programma
-@cindex programma @code{translate.awk}
+@cindex @code{translate.awk} (programma)
+@cindex programma @subentry @code{translate.awk}
@example
@c file eg/prog/translate.awk
# translate.awk --- fa cose simili al comando tr
@@ -27724,8 +27845,8 @@ trarre ispirazione dal codice di @file{cut.awk}
(@pxref{Programma cut}).
@node Programma labels
@subsection Stampare etichette per lettere
-@cindex stampare etichette per lettera
-@cindex etichette per lettera@comma{} stampare
+@cindex stampare @subentry etichette per lettera
+@cindex etichette per lettera @subentry stampare
Ecco un programma ``del mondo-reale''@footnote{``Del mondo-reale'' @`e definito
come ``un programma effettivamente usato per realizzare qualcosa''.}.
Questo @dfn{script} legge elenchi di nomi e indirizzi, e genera etichette per
@@ -27793,8 +27914,8 @@ La regola @code{END} si occupa di stampare l'ultima
pagina di
etichette; @`e improbabile che il numero di indirizzi da stampare sia un
multiplo esatto di 20:
-@cindex @code{labels.awk}, programma
-@cindex programma @code{labels.awk}
+@cindex @code{labels.awk} (programma)
+@cindex programma @subentry @code{labels.awk}
@example
@c file eg/prog/labels.awk
# labels.awk --- stampare etichette per lettera
@@ -27862,7 +27983,7 @@ END @{
@node Programma utilizzo parole
@subsection Generare statistiche sulla frequenza d'uso delle parole
-@cindex parole, statistica utilizzo delle
+@cindex parole @subentry statistica utilizzo delle
@cindex statistica utilizzo delle parole
Quando si lavora con una grande quantit@`a di testo, pu@`o essere interessante
@@ -27929,8 +28050,8 @@ interessati a sapere quali parole ricorrono pi@`u di
frequente, o ad avere
una tabella in ordine alfabetico che mostra quante volte ricorre ogni parola.
@end itemize
-@cindex @command{sort}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sort}
+@cindex @command{sort} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sort}
Il primo problema si pu@`o risolvere usando @code{tolower()} per rimuovere la
distinzione maiuscolo/minuscolo. Il secondo problema si pu@`o risolvere usando
@code{gsub()} per rimuovere i caratteri di interpunzione. Infine, per
@@ -27938,8 +28059,8 @@ risolvere il terzo problema si pu@`o usare il programma
di utilit@`a
@command{sort} per elaborare l'output dello @dfn{script} @command{awk}. Ecco
la
nuova versione del programma:
-@cindex @code{wordfreq.awk}, programma
-@cindex programma @code{wordfreq.awk}
+@cindex @code{wordfreq.awk} (programma)
+@cindex programma @subentry @code{wordfreq.awk}
@example
@c file eg/prog/wordfreq.awk
# wordfreq.awk --- stampa la lista con la frequenza delle parole
@@ -28010,7 +28131,7 @@ informazioni su come usare il programma @command{sort}.
@node Programma riordino diario
@subsection Eliminare duplicati da un file non ordinato
-@cindex righe, duplicate@comma{} rimuovere
+@cindex righe @subentry duplicate @subentry rimuovere
@cindex rimuovere righe duplicate
Il programma @command{uniq}
(@pxref{Programma uniq})
@@ -28036,8 +28157,8 @@ incontrate.
La regola @code{END} stampa semplicemente le righe, in ordine:
@cindex Rakitzis, Byron
-@cindex @code{histsort.awk}, programma
-@cindex programma @code{histsort.awk}
+@cindex @code{histsort.awk} (programma)
+@cindex programma @subentry @code{histsort.awk}
@example
@c file eg/prog/histsort.awk
# histsort.awk --- compatta un file della cronologia dei comandi della shell
@@ -28084,9 +28205,9 @@ riga @`e stata trovata.
@node Programma extract
@subsection Estrarre programmi da un file sorgente Texinfo
-@cindex Texinfo, estrarre programma da file sorgente
+@cindex Texinfo @subentry estrarre programma da file sorgente
@cindex estrarre programma da file sorgente Texinfo
-@cindex file Texinfo, estrarre programma da
+@cindex file @subentry Texinfo @subentry estrarre programma da
@ifnotinfo
Sia questo capitolo che il precedente
(@ref{Funzioni di libreria})
@@ -28117,7 +28238,7 @@ e anche
@uref{https://www.gnu.org/software/texinfo/manual/texinfo/, online}.)
@end ifnotinfo
@ifinfo
(Il linguaggio Texinfo @`e descritto esaurientemente, a partire da
-@inforef{Top, , Texinfo, texinfo,Texinfo---The GNU Documentation Format}.)
+@inforef{Top, , Texinfo, texinfo,Texinfo --- The GNU Documentation Format}.)
@end ifinfo
Per quel che ci riguarda, @`e sufficiente sapere tre cose riguardo ai file di
@@ -28196,8 +28317,8 @@ stato fornito un comando (@code{NF} dev'essere almeno
tre) e controllando
anche che il comando termini con un codice di ritorno uguale a zero, che sta
a significare che tutto @`e andato bene:
-@cindex @code{extract.awk}, programma
-@cindex programma @code{extract.awk}
+@cindex @code{extract.awk} (programma)
+@cindex programma @subentry @code{extract.awk}
@example
@c file eg/prog/extract.awk
# extract.awk --- estrae file ed esegue programmi dal file Texinfo
@@ -28367,10 +28488,10 @@ function fine_file_inattesa()
@node Programma sed semplice
@subsection Un semplice editor di flusso
-@cindex @command{sed}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sed}
+@cindex @command{sed} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sed}
@cindex editori di flusso
-@cindex flusso, editori di
+@cindex flusso @subentry editori di
Il programma di utilit@`a @command{sed} @`e un @dfn{editore di flusso},
ovvero un programma che legge un flusso di dati, lo modifica, e scrive il file
cos@`{@dotless{i}} modificato.
@@ -28398,8 +28519,8 @@ come un nome di @value{DF} da elaborare. Se non ne
viene fornito alcuno, si
usa lo standard input:
@cindex Brennan, Michael
-@cindex @command{awksed.awk}, programma
-@cindex programma @command{awksed.awk}
+@cindex @command{awksed.awk} (programma)
+@cindex programma @subentry @command{awksed.awk}
@c @cindex simple stream editor
@c @cindex stream editor, simple
@example
@@ -28485,8 +28606,8 @@ usando @code{print} o @code{printf} come richiesto, a
seconda del valore di
@node Programma igawk
@subsection Una maniera facile per usare funzioni di libreria
-@cindex libreria di funzioni @command{awk}, programma di esempio per usare
-@cindex funzioni, librerie di, programma di esempio per usare
+@cindex libreria di funzioni @command{awk} @subentry programma di esempio per
usare una
+@cindex funzioni @subentry libreria di @subentry programma di esempio per
usare una
@iftex
Nella
@end iftex
@@ -28649,8 +28770,8 @@ la variabile di shell
Il programma @`e il seguente:
-@cindex @code{igawk.sh}, programma
-@cindex programma @code{igawk.sh}
+@cindex @code{igawk.sh} (programma)
+@cindex programma @subentry @code{igawk.sh}
@example
@c file eg/prog/igawk.sh
#! /bin/sh
@@ -28974,7 +29095,7 @@ permettere l'uso di programmi @command{awk} come
@dfn{script} Web CGI.}
@node Programma anagram
@subsection Trovare anagrammi da una lista di parole
-@cindex anagrammi, trovare
+@cindex anagrammi @subentry trovare
Un'interessante sfida per il programmatore @`e quella di cercare
@dfn{anagrammi} in una
lista di parole (come
@file{/usr/share/dict/italian} presente in molti sistemi GNU/Linux).
@@ -28994,8 +29115,8 @@ Il programma seguente usa vettori di vettori per riunire
parole con la stessa firma, e l'ordinamento di vettori per stampare le
parole trovate in ordine alfabetico:
-@cindex @code{anagram.awk}, programma
-@cindex programma @code{anagram.awk}
+@cindex @code{anagram.awk} (programma)
+@cindex programma @subentry @code{anagram.awk}
@example
@c file eg/prog/anagram.awk
# anagram.awk --- Un'implementazione dell'algoritmo per trovare anagrammi
@@ -29110,8 +29231,8 @@ barili librai
@node Programma signature
@subsection E ora per qualcosa di completamente differente
-@cindex @code{signature}, programma
-@cindex programma @code{signature}
+@cindex @code{signature} (programma)
+@cindex programma @subentry @code{signature}
@cindex Brini, Davide
Il programma seguente @`e stato scritto da Davide Brini
@c (@email{dave_br@@gmx.com})
@@ -29397,10 +29518,10 @@ semplifica notevolmente le cose. Quale problema @`e
peraltro generato cos@`{@do
facendo?
@c answer, reading from "-" o /dev/stdin
-@cindex percorso di ricerca per file sorgente
-@cindex ricerca, percorso di, per file sorgente
-@cindex file sorgente, percorso di ricerca per
-@cindex directory, ricerca
+@cindex percorso di ricerca @subentry per file sorgente
+@cindex ricerca @subentry percorso di, per file sorgente
+@cindex file @subentry sorgente @subentry percorso di ricerca per
+@cindex directory @subentry ricerca
@item
Come ulteriore esempio dell'idea che non sempre @`e necessario aggiungere
nuove funzionalit@`a a un programma, si consideri l'idea di avere due file in
@@ -29468,8 +29589,8 @@ Contiene i seguenti capitoli:
@node Funzionalit@`a avanzate
@chapter Funzionalit@`a avanzate di @command{gawk}
-@cindex @command{gawk}, funzionalit@`a avanzate
-@cindex avanzate, funzionalit@`a, di @command{gawk}
+@cindex @command{gawk} @subentry funzionalit@`a avanzate
+@cindex avanzate @subentry funzionalit@`a @subentry di @command{gawk}
@ignore
Contributed by: Peter Langston <pud!address@hidden>
@@ -29551,10 +29672,11 @@ tratta della capacit@`a di aggiungere dinamicamente
nuove funzioni predefinite a
@node Dati non decimali
@section Consentire dati di input non decimali
-@cindex opzione @option{--non-decimal-data}
-@c @cindex funzionalit@`a avanzate, dati di input non decimali
-@cindex input, dati non decimali
-@cindex costanti, non decimali
+@cindex opzione @subentry @option{--non-decimal-data}
+@cindex @option{--non-decimal-data} (opzione)
+@c @cindex funzionalit@`a @subentry avanzate, dati di input non decimali
+@cindex input @subentry dati non decimali
+@cindex costanti @subentry non decimali
Se si esegue @command{gawk} con l'opzione @option{--non-decimal-data},
si possono avere valori in base diversa da dieci nei dati di input:
@@ -29593,9 +29715,10 @@ e poich@'e l'uso di questa funzionalit@`a pu@`o
portare a risultati inattesi, il
comportamento di default @`e quello lasciarla disabilitata. Se si vuole, la si
deve richiedere esplicitamente.
-@cindex programmazione, convenzioni di, opzione @code{--non-decimal-data}
-@cindex @option{--non-decimal-data}, opzione, funzione @code{strtonum()} e
-@cindex @code{strtonum()}, funzione (@command{gawk}), opzione
@code{--non-decimal-data} e
+@cindex programmazione @subentry convenzioni di @subentry opzione
@code{--non-decimal-data}
+@cindex @option{--non-decimal-data} (opzione) @subentry funzione
@code{strtonum()} e
+@cindex opzione @subentry @option{--non-decimal-data} @subentry funzione
@code{strtonum()} e
+@cindex @code{strtonum()} (funzione @command{gawk}) @subentry opzione
@code{--non-decimal-data} e
@quotation ATTENZIONE
@emph{L'uso di questa opzione non @`e consigliata.}
Pu@`o provocare errori molto seri eseguendo vecchi programmi.
@@ -29897,6 +30020,7 @@ produzione dovrebbe usare la funzione @code{isarray()}
(@pxref{Funzioni per i tipi})
per controllare ci@`o, e scegliere un ordinamento preciso per i sottovettori.
+@cindex modalit@`a POSIX
Tutti gli ordinamenti basati su @code{PROCINFO["sorted_in"]}
sono disabilitati in modalit@`a POSIX,
perch@'e il vettore @code{PROCINFO} in questo caso non @`e speciale.
@@ -29913,15 +30037,20 @@ ordinato di vettori non @`e il default.
@node Funzioni di ordinamento di vettori
@subsection Ordinare valori e indici di un vettore con @command{gawk}
-@cindex vettori, ordinamento dei
+@cindex vettori @subentry ordinamento @subentry @code{asort()} (funzione
@command{gawk})
+@cindex vettori @subentry ordinamento @subentry @code{asorti()} (funzione
@command{gawk})
@cindexgawkfunc{asort}
-@cindex @code{asort()}, funzione (@command{gawk}), ordinamento di vettori
-@cindex funzione @code{asort()} (@command{gawk}), ordinamento di vettori
+@cindex @code{asort()} (funzione @command{gawk}) @subentry ordinamento di
vettori
+@cindex funzione @subentry @code{asort()} (@command{gawk}) @subentry
ordinamento di vettori
+@cindex @code{asort()} (funzione @command{gawk}) @subentry effetti collaterali
+@cindex funzione @subentry @code{asort()} (@command{gawk}) @subentry effetti
collaterali
@cindexgawkfunc{asorti}
-@cindex @code{asorti()}, funzione (@command{gawk}), ordinamento di vettori
-@cindex funzione @code{asorti()} (@command{gawk}), ordinamento di vettori
-@cindex @code{sort()}, funzione, ordinamento di vettori
-@cindex funzione @code{sort()}, ordinamento di vettori
+@cindex @code{asorti()} (funzione @command{gawk}) @subentry ordinamento di
vettori
+@cindex funzione @subentry @code{asorti()} (@command{gawk}) @subentry
ordinamento di vettori
+@cindex @code{asorti()} (funzione @command{gawk}) @subentry effetti collaterali
+@cindex funzione @subentry @code{asorti()} (@command{gawk}) @subentry effetti
collaterali
+@cindex @code{sort()} (funzione) @subentry ordinamento di vettori
+@cindex funzione @subentry @code{sort()} @subentry ordinamento di vettori
Nella maggior parte delle implementazioni di @command{awk}, ordinare un vettore
richiede una funzione @code{sort()}. Questo pu@`o essere istruttivo per
provare
diversi algoritmi di ordinamento, ma normalmente non @`e questo lo scopo del
@@ -29945,8 +30074,10 @@ via. Il confronto di default @`e basato sul tipo di
elementi
Tutti i valori numerici vengono prima dei valori di stringa,
che a loro volta vengono prima di tutti i sottovettori.
-@cindex effetti collaterali, funzione @code{asort()}
-@cindex funzione @code{asort()}, effetti collaterali
+@cindex effetti collaterali @subentry funzione @subentry @code{asort()}
+@cindex funzione @subentry @code{asort()} @subentry effetti collaterali
+@cindex effetti collaterali @subentry funzione @subentry @code{asorti()}
+@cindex funzione @subentry @code{asorti()} @subentry effetti collaterali
Un effetto collaterale rilevante nel chiamare @code{asort()} @`e che
@emph{gli indici originali del vettore vengono persi irreparabilmente}.
Poich@'e questo non sempre @`e opportuno, @code{asort()} accetta un
@@ -30006,7 +30137,7 @@ loro ordine finale e li usa per riempire il vettore
risultato, mentre
@code{asorti()} prende gli @emph{indici} nel loro ordine finale e li usa per
riempire il vettore risultato.
-@cindex conteggio riferimenti, ordinamento vettori
+@cindex conteggio riferimenti @subentry ordinamento vettori
@quotation NOTA
Copiare indici ed elementi non @`e dispendioso in termini di memoria.
Internamente, @command{gawk} mantiene un @dfn{conteggio dei riferimenti} ai
@@ -30017,10 +30148,10 @@ valori che esiste in memoria.
@end quotation
@c Document It And Call It A Feature. Sigh.
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
-@cindex vettori, ordinamento, variabile @code{IGNORECASE} e
-@cindex @code{IGNORECASE}, variabile, funzioni di ordinamento dei vettori e
-@cindex variabile @code{IGNORECASE}, funzioni di ordinamento dei vettori e
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
+@cindex vettori @subentry ordinamento @subentry variabile @code{IGNORECASE} e
+@cindex @code{IGNORECASE} (variabile) @subentry funzioni di ordinamento dei
vettori e
+@cindex variabile @subentry @code{IGNORECASE} @subentry funzioni di
ordinamento dei vettori e
Poich@'e @code{IGNORECASE} influenza i confronti tra stringhe, il valore di
@code{IGNORECASE} influisce anche sull'ordinamento sia con @code{asort()} che
con @code{asorti()}.
@@ -30093,7 +30224,7 @@ $ @kbd{gawk -f confronta_in_minuscolo.awk}
@c 8/2014. Neither Mike nor BWK saw this as relevant. Commenting it out.
@ignore
@cindex Brennan, Michael
-@cindex programmers, attractiveness of
+@cindex programmers @subentry attractiveness of
@smallexample
@c Path:
cssun.mathcs.emory.edu!gatech!newsxfer3.itd.umich.edu!news-peer.sprintlink.net!news-sea-19.sprintlink.net!news-in-west.sprintlink.net!news.sprintlink.net!Sprint!204.94.52.5!news.whidbey.com!brennan
From: brennan@@whidbey.com (Mike Brennan)
@@ -30123,8 +30254,8 @@ Mike Brennan
@end smallexample
@end ignore
-@cindex funzionalit@`a avanzate, processi@comma{} comunicare con
-@cindex processi, comunicazioni bidirezionali con
+@cindex funzionalit@`a @subentry avanzate @subentry processi, comunicare con
+@cindex processi @subentry comunicazioni bidirezionali con
Spesso @`e utile poter
inviare dati a un programma separato che
li elabori e in seguito leggere il risultato. Questo pu@`o essere sempre
@@ -30154,11 +30285,11 @@ generare @value{FNS} unici. Questo @`e un punto
valido; tuttavia, i file
temporanei rimangono pi@`u difficili da usare delle @dfn{pipe} bidirezionali.}
@c 8/2014
@cindex coprocessi
-@cindex input/output bidirezionale
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|&} (I/O)
-@cindex @command{csh}, comando, operatore @code{|&}, confronto con
-@cindex comando @command{csh}, operatore @code{|&}, confronto con
+@cindex input/output @subentry bidirezionale
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|&} (I/O)
+@cindex @command{csh} (comando di utilit@`a) @subentry operatore @code{|&},
confronto con
+@cindex comando @subentry @command{csh} @subentry operatore @code{|&},
confronto con
Comunque, con @command{gawk}, @`e possibile aprire una @dfn{pipe}
@emph{bidirezionale}
verso un altro processo. Il secondo processo @`e chiamato @dfn{coprocesso},
@@ -30197,10 +30328,10 @@ figlio separatamente.
@cindex stalli
@cindex abbracci mortali
-@cindex @dfn{deadlocks}, vedi stalli
-@cindex bufferizzazione, dell'input/output
-@cindex input/output, bufferizzazione
-@cindex @code{getline}, comando, stalli e
+@cindex @dfn{deadlocks} @subentry vedi stalli
+@cindex bufferizzazione @subentry dell'input/output
+@cindex input/output @subentry bufferizzazione
+@cindex @code{getline} (comando) @subentry stalli e
@item
La permanenza in memoria (bufferizzazione) dell'I/O del sottoprocesso potrebbe
essere un problema. @command{gawk} automaticamente scrive su disco tutto
@@ -30213,8 +30344,8 @@ processo rimane in attesa
che l'altro processo faccia qualcosa.
@end itemize
-@cindex @code{close()}, funzione, @dfn{pipe} bidirezionali e
-@cindex funzione @code{close()}, @dfn{pipe} bidirezionali e
+@cindex @code{close()} (funzione) @subentry @dfn{pipe} bidirezionali e
+@cindex funzione @subentry @code{close()} @subentry @dfn{pipe} bidirezionali e
@`E possibile chiudere una @dfn{pipe} bidirezionale con un coprocesso solo in
una
direzione, fornendo un secondo argomento, @code{"to"} o @code{"from"}, alla
funzione @code{close()} (@pxref{Chiusura file e @dfn{pipe}}).
@@ -30222,8 +30353,8 @@ Queste stringhe dicono a @command{gawk} di chiudere la
@dfn{pipe}, rispettivamen
nella direzione che invia i dati al coprocesso e nella direzione che legge da
esso.
-@cindex @command{sort}, programma di utilit@`a, coprocessi e
-@cindex programma di utilit@`a @command{sort}, coprocessi e
+@cindex @command{sort} (programma di utilit@`a) @subentry coprocessi e
+@cindex programma di utilit@`a @subentry @command{sort} @subentry coprocessi e
Questo @`e particolarmente necessario per usare il programma di utilit@`a
di sistema @command{sort} come parte di un coprocesso;
@command{sort} deve leggere @emph{tutti} i dati di input
@@ -30259,6 +30390,7 @@ un'indicazione di fine-file. Questo fa in modo che
@command{sort} ordini i
dati e scriva i dati ordinati nel programma @command{gawk}. Una volta che
tutti i dati sono stati letti, @command{gawk} termina il coprocesso ed esce.
+@cindex ASCII
Come nota a margine, l'assegnamento @samp{LC_ALL=C} nel comando @command{sort}
assicura che @command{sort} usi l'ordinamento tradizionale di Unix (ASCII).
Ci@`o non @`e strettamente necessario in questo caso, ma @`e bene sapere come
farlo.
@@ -30285,9 +30417,9 @@ o @code{getline}.
@xref{Continuazione dopo errori} per ulteriori informazioni.
@end quotation
-@cindex @command{gawk}, vettore @code{PROCINFO} in
-@cindex @code{PROCINFO}, vettore, comunicazioni attraverso le @dfn{pty} e
-@cindex vettore @code{PROCINFO}, comunicazioni attraverso le @dfn{pty} e
+@cindex @command{gawk} @subentry vettore @subentry @code{PROCINFO} in
+@cindex @code{PROCINFO} (vettore) @subentry comunicazioni attraverso le
@dfn{pty} e
+@cindex vettore @subentry @code{PROCINFO} @subentry comunicazioni attraverso
le @dfn{pty} e
Per le comunicazioni bidirezionali si possono anche usare delle pseudo
@dfn{tty}
(@dfn{pty}) al posto delle @dfn{pipe}, se il sistema in uso le prevede.
Questo vien fatto, a seconda del comando da usare, impostando un elemento
@@ -30382,17 +30514,17 @@ E ora, magicamente, funziona!
@node Reti TCP/IP
@section Usare @command{gawk} per la programmazione di rete
-@cindex funzionalit@`a avanzate, programmazione di rete
-@cindex avanzate, funzionalit@`a, programmazione di rete
-@cindex reti, programmazione di
+@cindex funzionalit@`a @subentry avanzate @subentry programmazione di rete
+@cindex avanzate @subentry funzionalit@`a @subentry programmazione di rete
+@cindex reti @subentry programmazione di
@cindex TCP/IP
@cindex @code{/inet/@dots{}}, file speciali (in @command{gawk})
-@cindex file speciali @code{/inet/@dots{}} (in @command{gawk})
+@cindex file @subentry speciali @subentry @code{/inet/@dots{}} (in
@command{gawk})
@cindex @code{/inet4/@dots{}}, file speciali (in @command{gawk})
-@cindex file speciali @code{/inet4/@dots{}} (in @command{gawk})
+@cindex file @subentry speciali @subentry @code{/inet4/@dots{}} (in
@command{gawk})
@cindex @code{/inet6/@dots{}}, file speciali (in @command{gawk})
-@cindex file speciali @code{/inet6/@dots{}} (in @command{gawk})
-@cindex @code{EMRED}
+@cindex file @subentry speciali @subentry @code{/inet6/@dots{}} (in
@command{gawk})
+@cindex @code{EMRED} (codice di errore di fantasia)
@ifnotdocbook
@quotation
@code{EMRED}:@*
@@ -30451,8 +30583,8 @@ Il protocollo da usare sull'IP. Questo dev'essere o
@samp{tcp} o
TCP dovrebbe venir usato per la maggior parte delle applicazioni.
@item porta-locale
-@cindex @code{getaddrinfo()}, funzione (libreria C)
-@cindex funzione @code{getaddrinfo()} (libreria C)
+@cindex @code{getaddrinfo()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getaddrinfo()}
Il numero di porta TCP o UDP da usare. Si usa un numero di porta di valore
@samp{0} quando si vuole che sia il sistema a scegliere una porta.
Questo @`e quel che si dovrebbe fare quando si scrive un'applicazione
@@ -30471,9 +30603,9 @@ Anche in questo caso, si usi @samp{0} se non ci sono
preferenze,
o alternativamente, un nome di servizio comunemente noto.
@end table
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile
-@cindex variabile @code{ERRNO}
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile)
+@cindex variabile @subentry @code{ERRNO}
@quotation NOTA
Un insuccesso nell'apertura di un socket bidirezionale dar@`a luogo alla
segnalazione di un errore non fatale al codice chiamante.
@@ -30520,10 +30652,10 @@ per accedere ai servizi disponibili su Secure Socket
Layer
@node Profilare
@section Profilare i propri programmi @command{awk}
-@cindex @command{awk}, programmi, profilare
+@cindex programmi @command{awk} @subentry profilare
@cindex profilare programmi @command{awk}
-@cindex @code{awkprof.out}, file
-@cindex file @code{awkprof.out}
+@cindex @code{awkprof.out} @subentry file
+@cindex file @subentry @file{awkprof.out}
@`E possibile tener traccia dell'esecuzione dei propri programmi @command{awk}.
Ci@`o si pu@`o fare passando l'opzione @option{--profile} a @command{gawk}.
@@ -30531,8 +30663,8 @@ Al termine dell'esecuzione, @command{gawk} crea un
profilo del programma in un
file chiamato @file{awkprof.out}. A causa dell'attivit@`a di profilazione
l'esecuzione del programma @`e pi@`u lenta fino al 45% rispetto al normale.
-@cindex @option{--profile}, opzione
-@cindex opzione @option{--profile}
+@cindex @option{--profile} (opzione)
+@cindex opzione @subentry @option{--profile}
Come mostrato nel seguente esempio,
l'opzione @option{--profile} pu@`o essere usata per cambiare il nome del file
su cui @command{gawk} scriver@`a il profilo:
@@ -30593,10 +30725,10 @@ del profilatore di @command{gawk} su questo programma
e sui dati (quest'esempio
dimostra anche che i programmatori di @command{awk} a volte si alzano molto
presto al mattino per lavorare):
-@cindex @code{BEGIN}, criterio di ricerca, profilazione e
-@cindex criterio di ricerca @code{BEGIN}, profilazione e
-@cindex @code{END}, criterio di ricerca, profilazione e
-@cindex criterio di ricerca @code{END}, profilazione e
+@cindex @code{BEGIN} (regola) @subentry profilazione e
+@cindex regola @subentry @code{BEGIN} @subentry profilazione e
+@cindex @code{END} (regola) @subentry profilazione e
+@cindex regola @subentry @code{END} @subentry profilazione e
@example
# profilo gawk, creato Mon Sep 29 05:16:21 2014
@@ -30661,7 +30793,7 @@ Le regole @code{BEGIN} ed @code{END} multiple
conservano le loro
distinte identit@`a, cos@`{@dotless{i}} come le regole @code{BEGINFILE} ed
@code{ENDFILE}
multiple.
-@cindex criteri di ricerca, conteggi, in un profilo
+@cindex criteri di ricerca @subentry conteggi in un profilo
@item
Le regole criterio di ricerca--azione hanno due conteggi.
Il primo conteggio, a sinistra della regola, mostra quante volte
@@ -30681,7 +30813,7 @@ c'@`e un conteggio che mostra quante volte la
condizione @`e stata trovata vera.
Il conteggio per @code{else} indica
quante volte la verifica non ha avuto successo.
-@cindex cicli, conteggi per l'intestazione, in un profilo
+@cindex cicli @subentry conteggi per l'intestazione @subentry in un profilo
@item
Il conteggio per un ciclo (come @code{for}
o @code{while}) mostra quante volte il test del ciclo @`e stato eseguito.
@@ -30689,8 +30821,7 @@ o @code{while}) mostra quante volte il test del ciclo
@`e stato eseguito.
istruzione in una regola per determinare quante volte la regola @`e stata
eseguita. Se la prima istruzione @`e un ciclo, il conteggio @`e ingannevole.)
-@cindex funzioni definite dall'utente, conteggi@comma{} in un profilo
-@cindex definite dall'utente, funzioni, conteggi@comma{} in un profilo
+@cindex funzione definita dall'utente @subentry conteggi @subentry in un
profilo
@item
Per le funzioni definite dall'utente, il conteggio vicino alla parola chiave
@code{function} indica quante volte la funzione @`e stata chiamata.
@@ -30698,14 +30829,14 @@ I conteggi vicino alle istruzioni nel corpo mostrano
quante volte
quelle istruzioni sono state eseguite.
@cindex @code{@{@}} (parentesi graffe)
-@cindex parentesi graffe (@code{@{@}})
+@cindex parentesi @subentry graffe (@code{@{@}})
@item
L'impaginazione usa lo stile ``K&R'' con le tabulazioni.
Le parentesi graffe sono usate dappertutto, anche dove il corpo di un
@code{if}, di un @code{else} o di un ciclo @`e formato da un'unica istruzione.
-@cindex @code{()} (parentesi), in un profilo
-@cindex parentesi (@code{()}), in un profilo
+@cindex @code{()} (parentesi) @subentry in un profilo
+@cindex parentesi @subentry (@code{()}) @subentry in un profilo
@item
Le parentesi vengono usate solo dov'@`e necessario, come si rileva dalla
struttura del programma e dalle regole di precedenza.
@@ -30761,9 +30892,10 @@ che @`e corretto, ma probabilmente inatteso.
(Se un programma usa sia @samp{print $0} che un semplice
@samp{print}, tale differenza @`e mantenuta.)
-@cindex profilare programmi @command{awk}, dinamicamente
-@cindex @command{gawk}, programma, profilazione dinamica
-@cindex profilazione dinamica
+@cindex profilare programmi @command{awk} @subentry dinamicamente
+@cindex @command{gawk} @subentry programma @subentry profilazione dinamica
+@cindex @command{gawk} @subentry profilare programmi
+@cindex profilazione @subentry dinamica
Oltre a creare profili una volta completato il programma,
@command{gawk} pu@`o generare un profilo mentre @`e in esecuzione.
Questo @`e utile se il proprio programma @command{awk} entra in un ciclo
@@ -30776,11 +30908,11 @@ $ @kbd{gawk --profile -f mioprog &}
[1] 13992
@end example
-@cindex @command{kill}, comando@comma{} profilazione dinamica e
-@cindex comando @command{kill}@comma{} profilazione dinamica e
-@cindex @code{USR1}, segnale, per profilazione dinamica
-@cindex @code{SIGUSR1}, segnale, per profilazione dinamica
-@cindex segnali @code{USR1}/@code{SIGUSR1}, per profilazione
+@cindex @command{kill} (comando) @subentry profilazione dinamica e
+@cindex comando @subentry @command{kill} @subentry profilazione dinamica e
+@cindex @code{USR1} (segnale) @subentry per profilazione dinamica
+@cindex @code{SIGUSR1} (segnale) (per profilazione dinamica)
+@cindex segnali @subentry @code{USR1}/@code{SIGUSR1} (per profilazione)
@noindent
La shell stampa un numero di job e il numero di ID del relativo processo;
in questo caso, 13992. Si usi il comando @command{kill} per inviare il
@@ -30811,18 +30943,18 @@ Si pu@`o inviare a @command{gawk} il segnale
@code{USR1} quante volte si vuole.
Ogni volta, il profilo e la traccia della chiamata alla funzione vengono
aggiunte in fondo al file di profilo creato.
-@cindex @code{HUP}, segnale, per profilazione dinamica
-@cindex @code{SIGHUP}, segnale, per profilazione dinamica
-@cindex segnali @code{HUP}/@code{SIGHUP}, per profilazione
+@cindex @code{HUP} (segnale) @subentry per profilazione dinamica
+@cindex @code{SIGHUP} (segnale) (per profilazione dinamica)
+@cindex segnali @subentry @code{HUP}/@code{SIGHUP} (per profilazione)
Se si usa il segnale @code{HUP} invece del segnale @code{USR1}, @command{gawk}
genera il profilo e la traccia della chiamata alla funzione ed esce.
-@cindex @code{INT}, segnale (MS-Windows)
-@cindex @code{SIGINT}, segnale (MS-Windows)
-@cindex segnali @code{INT}/@code{SIGINT} (MS-Windows)
-@cindex @code{QUIT}, segnale (MS-Windows)
-@cindex @code{SIGQUIT}, segnale (MS-Windows)
-@cindex segnali @code{QUIT}/@code{SIGQUIT} (MS-Windows)
+@cindex @code{INT} (segnale) (MS-Windows)
+@cindex @code{SIGINT} (segnale) (MS-Windows)
+@cindex segnali @subentry @code{INT}/@code{SIGINT} (MS-Windows)
+@cindex @code{QUIT} (segnale) (MS-Windows)
+@cindex @code{SIGQUIT} (segnale) (MS-Windows)
+@cindex segnali @subentry @code{QUIT}/@code{SIGQUIT} (MS-Windows)
Quando @command{gawk} viene eseguito sui sistemi MS-Windows, usa i segnali
@code{INT} e @code{QUIT} per generare il profilo, e nel
caso del segnale @code{INT}, @command{gawk} esce. Questo perch@'e
@@ -30842,8 +30974,8 @@ Una volta, l'opzione @option{--pretty-print} eseguiva
anche il programma.
Ora non pi@`u.
@end quotation
-@cindex profilazione, differenza rispetto alla stampa elegante
-@cindex stampa elegante, differenza rispetto alla profilazione
+@cindex profilazione @subentry differenza rispetto alla stampa elegante
+@cindex stampa elegante @subentry differenza rispetto alla profilazione
C'@`e una differenza significativa tra l'output creato durante la profilazione,
e quello creato durante la stampa elegante. L'output della stampa elegante
preserva i commenti originali che erano nel programma, anche se la loro
@@ -30936,9 +31068,9 @@ ci@`o avrebbe avuto come risultato un incremento delle
vendite.
Per questo motivo, l'internazionalizzazione e la localizzazione
di programmi e sistemi software @`e divenuta una pratica comune.
-@cindex internazionalizzazione, localizzazione
-@cindex @command{gawk}, internazionalizzazione e, si veda
internazionalizzazione
-@cindex internazionalizzazione, localizzazione, @command{gawk} e
+@cindex internazionalizzazione @subentry localizzazione
+@cindex @command{gawk} @subentry internazionalizzazione e
@seeentry{internazionalizzazione}
+@cindex internazionalizzazione @subentry localizzazione @subentry
@command{gawk} e
Per molti anni la possibilit@`a di fornire l'internazionalizzazione
era sostanzialmente limitata ai programmi scritti in C e C++.
Questo @value{CHAPTER} descrive la libreria @dfn{ad hoc} utilizzata da
@@ -30964,8 +31096,9 @@ non sono pi@`u obbligati a scrivere in C o C++ quando
l'internazionalizzazione
@node I18N e L10N
@section Internazionalizzazione e localizzazione
-@cindex internazionalizzazione di programmi @command{awk}
-@cindex localizzazione, si veda internazionalizzazione@comma{} localizzazione
+@cindex programmi @command{awk} @subentry internazionalizzare
+@cindex internazionalizzazione @subentry di programmi @command{awk}
+@cindex localizzazione @seealso{internazionalizzazione}
@cindex localizzazione
@dfn{Internazionalizzazione} significa scrivere (o modificare) un programma
una volta sola,
@@ -30982,8 +31115,8 @@ relative al modo di leggere e di stampare dati di tipo
numerico o valutario.
@node Utilizzare @command{gettext}
@section Il comando GNU @command{gettext}
-@cindex internazionalizzare un programma
-@cindex @command{gettext}, libreria
+@cindex internazionalizzazione @subentry di programmi @command{awk}
+@cindex @command{gettext} @subentry libreria
@cindex libreria @command{gettext}
@command{gawk} usa il comando GNU @command{gettext} per rendere disponibili
le proprie funzionalit@`a di internazionalizzazione.
@@ -30996,7 +31129,7 @@ non supporta il comando GNU @command{gettext}.
Per questo motivo, queste funzionalit@`a non sono disponibili nel caso
si stia lavorando con uno di questi sistemi operativi. Siamo spiacenti.}
-@cindex portabilit@`a, libreria @command{gettext} e
+@cindex portabilit@`a @subentry libreria @command{gettext} e
Quando si usa il comando GNU @command{gettext}, ogni applicazione ha il
proprio @dfn{dominio di testo}. Questo @`e un nome unico come,
p.es., @samp{kpilot} o @samp{gawk},
@@ -31021,17 +31154,17 @@ necessita di traduzione.
(P.es., l'opzione di @command{gawk} @option{--profile}
dovrebbe restare immutata, a prescindere dalla lingua locale).
-@cindex @code{textdomain()}, funzione (libreria C)
-@cindex funzione @code{textdomain()} (libreria C)
+@cindex @code{textdomain()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{textdomain()}
@item
Il programmatore indica il dominio di testo dell'applicazione
(@command{"guide"}) alla libreria @command{gettext},
chiamando la funzione @code{textdomain()}.
-@cindex @code{.pot}, file
-@cindex file @code{.pot}
-@cindex @dfn{portable object template} (.pot), file
-@cindex file, @dfn{portable object template} (.pot)
+@cindex @file{.pot} (file)
+@cindex file @subentry @file{.pot}
+@cindex @dfn{portable object template} (@file{.pot}) (file)
+@cindex file @subentry @dfn{portable object template} (@file{.pot})
@item
I messaggi dell'applicazione che vanno tradotti sono estratti dal codice
sorgente e messi in un file di tipo
@@ -31045,24 +31178,24 @@ tradotta @`e una stringa nulla).
Il messaggio originale (normalmente in inglese) @`e utilizzato come chiave
di riferimento per le traduzioni.
-@cindex @code{.po}, file
-@cindex file @code{.po}
-@cindex @dfn{portable object} file (.po)
-@cindex file, @dfn{portable object} (.po)
+@cindex @file{.po} (file)
+@cindex file @subentry @file{.po}
+@cindex @dfn{portable object} file (@file{.po})
+@cindex file @subentry @dfn{portable object} (@file{.po})
@item
Per ogni lingua per cui sia disponibile un traduttore, il file
@file{guide.pot} @`e copiato in un file di tipo
@dfn{portable object}
[oggetto portabile]
-(dal suffisso @code{.po})
+(dal suffisso @file{.po})
e le traduzioni sono effettuate su quel file,
che viene distribuito con l'applicazione.
Per esempio, potrebbe esserci un file @file{it.po} per la traduzione italiana.
-@cindex @code{.gmo}, file
-@cindex file @code{.gmo}
-@cindex @dfn{message object} file (.mo)
-@cindex file, @dfn{message object} (.mo)
+@cindex @file{.gmo} (file)
+@cindex file @subentry @file{.gmo}
+@cindex @dfn{message object} file (@file{.mo})
+@cindex file @subentry @dfn{message object} (@file{.mo})
@item
Il file @file{.po} di ogni lingua @`e convertito in un formato binario,
detto @dfn{message object} (file @file{.gmo}).
@@ -31074,17 +31207,17 @@ traduzioni quando l'applicazione viene eseguita.
Quando @command{guide} @`e compilato e installato, i file binari contenenti le
traduzioni sono installati in una directory standard.
-@cindex @code{bindtextdomain()}, funzione (libreria C)
-@cindex funzione @code{bindtextdomain()} (libreria C)
+@cindex @code{bindtextdomain()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{bindtextdomain()}
@item
Durante la fase di prova e sviluppo, @`e possibile chiedere a @command{gettext}
di usare un file @file{.gmo} in una directory diversa da quella standard,
usando la funzione @code{bindtextdomain()}.
-@cindex @code{.gmo}, file, specificare la directory di
-@cindex file @code{.gmo}, specificare la directory di
-@cindex @dfn{message object} file (.mo), specificare la directory di
-@cindex file, @dfn{message object} (.mo), specificare la directory di
+@cindex @file{.gmo} (file) @subentry specificare la directory di
+@cindex file @subentry @file{.gmo} @subentry specificare la directory di
+@cindex @dfn{message object} file (@file{.mo}) @subentry specificare la
directory di
+@cindex file @subentry @dfn{message object} (@file{.mo}) @subentry specificare
la directory di
@item
Quando viene eseguito, il programma @command{awk} @command{guide} cerca ogni
stringa da tradurre facendo una chiamata a @code{gettext()}. La stringa
@@ -31097,8 +31230,8 @@ testo diverso da quello proprio dell'applicazione,
senza dover altalenare fra
questo secondo dominio e quello dell'applicazione.
@end enumerate
-@cindex @code{gettext()}, funzione (libreria C)
-@cindex funzione @code{gettext()} (libreria C)
+@cindex @code{gettext()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{gettext()}
In C (o C++), la marcatura della stringa la ricerca dinamica
della traduzione si fanno inserendo ogni stringa da tradurre in una chiamata
a @code{gettext()}:
@@ -31110,8 +31243,8 @@ printf("%s", gettext("Don't Panic!\n"));
Gli strumenti software che estraggono messaggi dal codice sorgente
individuano tutte le stringhe racchiuse nelle chiamate a @code{gettext()}.
-@cindex @code{_} (trattino basso), macro C
-@cindex trattino basso (@code{_}), macro C
+@cindex @code{_} (trattino basso) @subentry macro C
+@cindex trattino basso (@code{_}) @subentry macro C
Gli sviluppatori del comando GNU @command{gettext}, riconoscendo che
continuare a immettere @samp{gettext(@dots{})} @`e sia faticoso che poco
elegante da vedere, usano la macro @samp{_} (un trattino basso) per
@@ -31125,10 +31258,11 @@ facilitare la cosa:
printf("%s", _("Don't Panic!\n"));
@end example
-@cindex internazionalizzazione, localizzazione, categorie di localizzazione
-@cindex @command{gettext}, libreria, categorie di localizzazione
-@cindex libreria @command{gettext}, categorie di localizzazione
-@cindex categorie di localizzazione
+@cindex internazionalizzazione @subentry localizzazione @subentry categorie di
localizzazione
+@cindex @command{gettext} @subentry libreria @subentry categorie di
localizzazione
+@cindex libreria @command{gettext} @subentry categorie di localizzazione
+@cindex categoria di localizzazione
+@cindex localizzazione @subentry categorie di
@noindent
Questo permette di ridurre la digitazione extra a solo tre caratteri per
ogni stringa da tradurre e inoltre migliora di molto la leggibit@`a.
@@ -31138,24 +31272,24 @@ legate a una particolare localizzazione.
Le categorie di localizzazione note a @command{gettext} sono:
@table @code
-@cindex @code{LC_MESSAGES}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_MESSAGES}
+@cindex @code{LC_MESSAGES} (variabile d'ambiente) @subentry categoria di
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_MESSAGES} (variabile
d'ambiente)
@item LC_MESSAGES
Testo dei messaggi. Questa @`e la categoria di default usata all'interno di
@command{gettext}, ma @`e possibile specificarne esplicitamente una differente,
se necessario. (Questo non @`e quasi mai necessario.)
@cindex ordinare caratteri in lingue differenti
-@cindex @code{LC_COLLATE}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_COLLATE}
+@cindex @code{LC_COLLATE} (variabile d'ambiente) @subentry categoria di
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_COLLATE} (variabile
d'ambiente)
@item LC_COLLATE
Informazioni sull'ordinamento alfabetico (cio@`e, come caratteri diversi e/o
gruppi di carattere sono ordinati in un dato linguaggio).
@c ad esempio i vari caratteri accentati in italiano, vanno ordinati
@c insieme alla loro lettera "principale" (e @`e @'e).
-@cindex @code{LC_CTYPE}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_CTYPE}
+@cindex @code{LC_CTYPE} (variabile d'ambiente) @subentry categoria di
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_CTYPE} (variabile
d'ambiente)
@item LC_CTYPE
Informazioni sui singoli caratteri (alfabetico, numerico, maiuscolo
o minuscolo, etc.), come pure sulla codifica dei caratteri.
@@ -31173,19 +31307,21 @@ definite nello standard POSIX, nelle espressioni
regolari,
come p. es. @code{/[[:alnum:]]/}
(@pxref{Espressioni tra parentesi quadre}).
-@cindex informazioni di tipo monetario, localizzazione
-@cindex monete, simboli di, nella localizzazione
-@cindex simboli di monete, nella localizzazione
-@cindex monete, rappresentazioni di, nella localizzazione
-@cindex rappresentazioni di monete, nella localizzazione
-@cindex @code{LC_MONETARY}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_MONETARY}
+@cindex informazioni di tipo monetario @subentry localizzazione
+@cindex monete @subentry simboli di (nella localizzazione)
+@cindex simboli di monete (nella localizzazione)
+@cindex monete @subentry rappresentazioni di (nella localizzazione)
+@cindex internazionalizzazione @subentry localizzazione @subentry informazioni
di tipo monetario
+@cindex internazionalizzazione @subentry localizzazione @subentry simboli di
monete
+@cindex rappresentazioni di monete (nella localizzazione)
+@cindex @code{LC_MONETARY} (variabile d'ambiente) @subentry categoria di
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_MONETARY} (variabile
d'ambiente)
@item LC_MONETARY
Le informazioni di tipo monetario, quali il simbolo della moneta, e se
il simbolo va prima o dopo il valore numerico.
-@cindex @code{LC_NUMERIC}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_NUMERIC}
+@cindex @code{LC_NUMERIC} (variabile d'ambiente) @subentry categoria di
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_NUMERIC} (variabile
d'ambiente)
@item LC_NUMERIC
Informazioni di tipo numerico, quali il carattere da usare per separare le
cifre decimali e quello per separare le migliaia.@footnote{Gli americani usano
@@ -31193,26 +31329,26 @@ una virgola ogni tre cifre decimali, e un punto per
separare la parte decimale
di un numero, mentre molti europei (fra cui gli italiani) fanno esattamente
l'opposto: 1,234.56 invece che 1.234,56.}
-@cindex tempo, localizzazione e
-@cindex date, informazioni relative alla localizzazione
-@cindex @code{LC_TIME}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_TIME}
+@cindex tempo @subentry localizzazione e
+@cindex date @subentry informazioni relative alla localizzazione
+@cindex @code{LC_TIME} (variabile d'ambiente) @subentry categoria di
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_TIME} (variabile
d'ambiente)
@item LC_TIME
Informazioni relative alle date e alle ore,
come l'uso di ore nel formato a 12 ore oppure a 24 ore, il mese stampato
prima o dopo il giorno in una data, le abbreviazioni dei mesi nella lingua
locale, e cos@`{@dotless{i}} via.
-@cindex @code{LC_ALL}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_ALL}
+@cindex @code{LC_ALL} (variabile d'ambiente) @subentry categoria di
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_ALL} (variabile
d'ambiente)
@item LC_ALL
Tutte le categorie viste sopra. (Non molto utile nel contesto del comando
@command{gettext}.)
@end table
@quotation NOTA
-@cindex @env{LANGUAGE}, variabile d'ambiente
-@cindex variabile d'ambiente @env{LANGUAGE}
+@cindex @env{LANGUAGE} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LANGUAGE}
Come descritto in @ref{Localizzazioni}, le variabili d'ambiente
che hanno lo stesso nome delle categorie di localizzazione
(@env{LC_CTYPE}, @env{LC_ALL}, etc.) influenzano il comportamento di
@@ -31230,6 +31366,8 @@ definita, e, in questo caso, va usato il comando
@command{unset}
per rimuoverla.
@end quotation
+@cindex @env{GAWK_LOCALE_DIR} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{GAWK_LOCALE_DIR}
Per il test di traduzioni dei messaggi inviati da @command{gawk} stesso, si
pu@`o
impostare la variabile d'ambiente @env{GAWK_LOCALE_DIR}. Si veda la
documentazione per la funzione C @code{bindtextdomain()}, e si veda anche
@@ -31237,21 +31375,21 @@ documentazione per la funzione C
@code{bindtextdomain()}, e si veda anche
@node I18N per programmatore
@section Internazionalizzare programmi @command{awk}
-@cindex programmi @command{awk}, internazionalizzare
-@cindex internazionalizzazione di programmi @command{awk}
+@cindex programmi @command{awk} @subentry internazionalizzare
+@cindex internazionalizzazione @subentry di programmi @command{awk}
@command{gawk} prevede le seguenti variabili per l'internazionalizzazione:
@table @code
-@cindex @code{TEXTDOMAIN}, variabile
-@cindex variabile @code{TEXTDOMAIN}
+@cindex @code{TEXTDOMAIN} (variabile)
+@cindex variabile @subentry @code{TEXTDOMAIN}
@item TEXTDOMAIN
Questa variabile indica il dominio di testo dell'applicazione.
Per compatibilit@`a con il comando GNU @command{gettext}, il valore di default
@`e @code{"messages"}.
-@cindex internazionalizzazione, localizzazione, stringhe marcate
-@cindex stringhe, marcare per localizzazione
+@cindex internazionalizzazione @subentry localizzazione @subentry stringhe
marcate
+@cindex stringa @subentry marcata @subentry per localizzazione
@item _"questo @`e un messaggio da tradurre"
Costanti di tipo stringa marcate con un trattino basso iniziale
sono candidate per essere tradotte al momento dell'esecuzione del
@@ -31306,10 +31444,10 @@ Il valore di default per @var{categoria} @`e
@code{"LC_MESSAGES"}.
Valgono le stesse osservazioni riguardo all'ordine degli argomenti
fatte a proposito della funzione @code{dcgettext()}.
-@cindex @code{.gmo}, file, specificare la directory di
-@cindex file @code{.gmo}, specificare la directory di
-@cindex @dfn{message object} file (.mo), specificare la directory di
-@cindex file, @dfn{message object} (.mo), specificare la directory di
+@cindex @file{.gmo} (file) @subentry specificare la directory di
+@cindex file @subentry @file{.gmo} @subentry specificare la directory di
+@cindex @dfn{message object} file (@file{.mo}) @subentry specificare la
directory di
+@cindex file @subentry @dfn{message object} (@file{.mo}) @subentry specificare
la directory di
@cindexgawkfunc{bindtextdomain}
@item @code{bindtextdomain(@var{directory}} [@code{,} @var{dominio} ]@code{)}
Cambia la directory nella quale
@@ -31328,10 +31466,10 @@ Per usare queste funzionalit@`a in un programma
@command{awk},
va seguita la procedura qui indicata:
@enumerate
-@cindex @code{BEGIN}, criterio di ricerca, variabile @code{TEXTDOMAIN} e
-@cindex criterio di ricerca @code{BEGIN}, variabile @code{TEXTDOMAIN} e
-@cindex @code{TEXTDOMAIN}, variabile, criterio di ricerca @code{BEGIN} e
-@cindex variabile @code{TEXTDOMAIN}, criterio di ricerca @code{BEGIN} e
+@cindex @code{BEGIN} (regola) @subentry variabile @code{TEXTDOMAIN} e
+@cindex regola @subentry @code{BEGIN} @subentry variabile @code{TEXTDOMAIN} e
+@cindex @code{TEXTDOMAIN} (variabile) @subentry @code{BEGIN} (regola) e
+@cindex variabile @subentry @code{TEXTDOMAIN} @subentry @code{BEGIN} (regola) e
@item
Impostare la variabile @code{TEXTDOMAIN} al dominio di testo del
programma. @`E meglio fare ci@`o all'interno di una regola @code{BEGIN}
@@ -31346,8 +31484,8 @@ BEGIN @{
@}
@end example
-@cindex @code{_} (trattino basso), stringa traducibile
-@cindex trattino basso (@code{_}), stringa traducibile
+@cindex @code{_} (trattino basso) @subentry stringa traducibile
+@cindex trattino basso (@code{_}) @subentry stringa traducibile
@item
Marcare tutte le stringhe traducibili anteponendo loro un
trattino basso (@samp{_}). Il trattino @emph{deve} essere adiacente ai
@@ -31393,7 +31531,7 @@ printf(messaggio, numero_clienti)
@end example
-@cindex @code{LC_MESSAGES}, categoria di localizzazione, funzione
@code{bindtextdomain()} di (@command{gawk})
+@cindex @code{LC_MESSAGES} (variabile d'ambiente) @subentry categoria di
localizzazione @subentry funzione @code{bindtextdomain()} di (@command{gawk})
@item
In fase di sviluppo, si pu@`o scegliere di tenere il file @file{.gmo}
in una directory a parte, solo per provarlo. Ci@`o si fa
@@ -31421,10 +31559,10 @@ e usare traduzioni nei programmi @command{awk}.
@node I18N per traduttore
@section Traduzione dei programmi @command{awk}
-@cindex @code{.po}, file
-@cindex file @code{.po}
-@cindex @dfn{portable object} file (.po)
-@cindex file, @dfn{portable object} (.po)
+@cindex @file{.po} (file)
+@cindex file @subentry @file{.po}
+@cindex @dfn{portable object} file (@file{.po})
+@cindex file @subentry @dfn{portable object} (@file{.po})
Dopo aver marcato le stringhe che si desidera tradurre in un programma,
queste vanno estratte per creare il file iniziale @file{.pot}.
Durante la traduzione, @`e spesso utile modificare l'ordine nel quale
@@ -31444,17 +31582,17 @@ in fase di esecuzione.
@node Estrazione di stringhe
@subsection Estrarre stringhe marcate
-@cindex stringhe, estrazione di
-@cindex @option{--gen-pot}, opzione
-@cindex opzione @option{--gen-pot}
-@cindex opzioni sulla riga di comando, estrazione stringhe
-@cindex riga di comando, opzioni, estrazione stringhe
-@cindex stringhe marcate, estrazione di (internazionalizzazione)
-@cindex marcate, estrazione di stringhe (internazionalizzazione)
+@cindex stringa @subentry estrazione di
+@cindex @option{--gen-pot} (opzione)
+@cindex opzione @subentry @option{--gen-pot}
+@cindex opzioni @subentry sulla riga di comando @subentry estrazione stringhe
+@cindex riga di comando @subentry opzioni @subentry estrazione stringhe
+@cindex stringa @subentry marcata @subentry estrazione di
(internazionalizzazione)
+@cindex marcate @subentry estrazione di stringhe (internazionalizzazione)
@cindex estrazione di stringhe marcate (internazionalizzazione)
-@cindex @option{--gen-pot}, opzione
-@cindex opzione @option{--gen-pot}
+@cindex @option{--gen-pot} (opzione)
+@cindex opzione @subentry @option{--gen-pot}
Una volta che il programma @command{awk} funziona, e tutte le stringhe
sono state marcate ed @`e stato impostato (e forse fissato) il dominio di
testo, @`e ora di preparare le traduzioni.
@@ -31465,8 +31603,8 @@ si crea il file iniziale @file{.pot}:
gawk --gen-pot -f guide.awk > guide.pot
@end example
-@cindex @code{xgettext}, programma di utilit@`a
-@cindex programma di utilit@`a @code{xgettext}
+@cindex @code{xgettext} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @code{xgettext}
Quando viene chiamato specificando @option{--gen-pot}, @command{gawk} non
esegue il programma. Il programma viene esaminato come al solito, e tutte
le stringhe che sono state marcate per essere tradotte vengono scritte nello
@@ -31488,10 +31626,10 @@ traduzioni per il programma @command{guide}.
@node Ordinamento di printf
@subsection Riordinare argomenti di @code{printf}
-@cindex @code{printf}, istruzione, specificatori di posizione
-@cindex istruzione @code{printf}, specificatori posizionali
-@cindex posizionali, specificatori, istruzione @code{printf}
-@cindex specificatori posizionali, istruzione @code{printf}
+@cindex @code{printf} (istruzione) @subentry specificatori di posizione
+@cindex istruzione @subentry @code{printf} @subentry specificatori di posizione
+@cindex posizione @subentry specificatori di @subentry istruzione @code{printf}
+@cindex specificatori di posizione @subentry istruzione @code{printf}
Le stringhe di formattazione per @code{printf} e @code{sprintf()}
(@pxref{Printf})
hanno un problema speciale con le traduzioni.
@@ -31517,13 +31655,13 @@ nella chiamata a @code{printf}.
Per risolvere questo problema, gli specificatori di formato di @code{printf}
possono avere un elemento in pi@`u, opzionale, detto @dfn{specificatore
-posizionale}. Per esempio:
+di posizione}. Per esempio:
@example
"%2$d @`e la lunghezza della stringa `%1$s'\n"
@end example
-Qui, lo specificatore posizionale consiste in un numero intero, che indica
+Qui, lo specificatore di posizione consiste in un numero intero, che indica
quale argomento utilizzare, seguito da un carattere @samp{$}.
I numeri partono da uno, e la stringa di formattazione vera e propria
@emph{non} @`e inclusa. Quindi, nell'esempio seguente, @samp{stringa} @`e
@@ -31538,10 +31676,10 @@ $ @kbd{gawk 'BEGIN @{}
@print{} 16 caratteri compongono "Non v\47allarmate!"
@end example
-Se presenti, gli specificatori posizionali precedono, nella specifica di
+Se presenti, gli specificatori di posizione precedono, nella specifica di
formato, i flag, la larghezza del campo e/o la precisione.
-Gli specificatori posizionali possono essere usati anche se si specifica una
+Gli specificatori di posizione possono essere usati anche se si specifica una
larghezza dinamica dei campi, e della capacit@`a di precisione:
@example
@@ -31554,19 +31692,19 @@ $ @kbd{gawk 'BEGIN @{}
@end example
@quotation NOTA
-Se si usa @samp{*} con uno specificatore posizionale, il carattere @samp{*}
+Se si usa @samp{*} con uno specificatore di posizione, il carattere @samp{*}
viene per primo, seguito dal numero che indica la posizione, a sua volta
seguito dal @samp{$}.
Ci@`o pu@`o parere poco intuitivo.
@end quotation
-@cindex istruzione @code{printf}, specificatori posizionali, frammisti a
formati standard
-@cindex @code{printf}, istruzione, specificatori posizionali, frammisti a
formati standard
-@cindex specificatori posizionali, istruzione @code{printf}, frammisti a
formati standard
-@cindex formato, specificatori di, frammisti a specificatori posizionali non
standard
-@cindex specificatori di formato, frammisti a specificatori posizionali non
standard
+@cindex istruzione @subentry @code{printf} @subentry specificatori di
posizione, frammisti a formati standard
+@cindex @code{printf} (istruzione) @subentry specificatori di posizione
@subentry frammisti a formati standard
+@cindex specificatori di posizione @subentry istruzione @code{printf}
@subentry frammisti a formati standard
+@cindex formato @subentry specificatori di posizione @subentry frammisti a
specificatori non standard
+@cindex specificatori di formato @subentry frammisti a specificatori di
posizione non standard
@command{gawk} non consente di mischiare specificatori di formato standard
-con altri contenenti degli specificatori posizionali in una stessa stringa di
+con altri contenenti degli specificatori di posizione in una stessa stringa di
formato:
@example
@@ -31585,7 +31723,7 @@ Rimane sempre una pessima idea quella di tentare di
mischiare i formati,
anche se @command{gawk} non riesce ad accorgersene.
@end quotation
-Sebbene gli specificatori posizionali possano essere usati direttamente nei
+Sebbene gli specificatori di posizione possano essere usati direttamente nei
programmi @command{awk}, il motivo per cui sono stati introdotti @`e perch@'e
siano d'aiuto nel produrre traduzioni corrette della stringa di
formattazione in lingue differenti da quella nella quale il programma @`e stato
@@ -31594,8 +31732,8 @@ originariamente scritto.
@node Portabilit@`a nell'I18N
@subsection Problemi di portabilit@`a a livello di @command{awk}
-@cindex portabilit@`a, internazionalizzazione e
-@cindex internazionalizzazione, localizzazione, portabilit@`a e
+@cindex portabilit@`a @subentry internazionalizzazione e
+@cindex internazionalizzazione @subentry localizzazione @subentry
portabilit@`a e
Le funzionalit@`a di internazionalizzazione di @command{gawk} sono state
appositamente implementate per avere il minimo impatto possibile sulla
portabilit@`a, verso altre versioni di @command{awk}, dei programmi
@@ -31617,8 +31755,8 @@ Per il modo in cui @`e scritto, non funzioner@`a con
altre versioni di
Tuttavia, @`e in realt@`a quasi portabile, e richiede modifiche minime:
@itemize @value{BULLET}
-@cindex @code{TEXTDOMAIN}, variabile, portabilit@`a e
-@cindex variabile @code{TEXTDOMAIN}, portabilit@`a e
+@cindex @code{TEXTDOMAIN} (variabile) @subentry portabilit@`a e
+@cindex variabile @subentry @code{TEXTDOMAIN} @subentry portabilit@`a e
@item
Le assegnazioni di valori a @code{TEXTDOMAIN} non avranno effetto alcuno,
perch@'e @code{TEXTDOMAIN} non @`e una variabile speciale in altre
@@ -31640,12 +31778,12 @@ pu@`o essere reso eseguibile, ma
tutti i messaggi verranno inviati nella lingua originale del programma.
Per esempio:
-@cindex @code{bindtextdomain()}, funzione (@command{gawk}), portabilit@`a e
-@cindex funzione @code{bindtextdomain()} (@command{gawk}), portabilit@`a e
-@cindex @code{dcgettext()}, funzione (@command{gawk}), portabilit@`a e
-@cindex funzione @code{dcgettext()} (@command{gawk}), portabilit@`a e
-@cindex @code{dcngettext()}, funzione (@command{gawk}), portabilit@`a e
-@cindex funzione @code{dcngettext()} (@command{gawk}), portabilit@`a e
+@cindex @code{bindtextdomain()} (funzione @command{gawk}) @subentry
portabilit@`a e
+@cindex funzione @subentry @code{bindtextdomain()} (@command{gawk}) @subentry
portabilit@`a e
+@cindex @code{dcgettext()} (funzione @command{gawk}) @subentry portabilit@`a e
+@cindex funzione @subentry @code{dcgettext()} (@command{gawk}) @subentry
portabilit@`a e
+@cindex @code{dcngettext()} (funzione @command{gawk}) @subentry portabilit@`a e
+@cindex funzione @subentry @code{dcngettext()} (@command{gawk}) @subentry
portabilit@`a e
@example
@c file eg/lib/libintl.awk
function bindtextdomain(dir, domain)
@@ -31666,17 +31804,17 @@ function dcngettext(string1, string2, number, domain,
category)
@end example
@item
-L'uso di specificazioni posizionali in @code{printf} o
+L'uso di specificazioni di posizione in @code{printf} o
@code{sprintf()} @emph{non} @`e portabile.
Per supportare @code{gettext()} nella programmazione in linguaggio C,
-molte versioni C di @code{sprintf()} supportano specificatori posizionali.
+molte versioni C di @code{sprintf()} supportano specificatori di posizione.
Ma la cosa funziona solo se nella chiamata di funzione sono stati specificati
argomenti a sufficienza. Molte
versioni di @command{awk} passano i formati e gli argomenti di @code{printf},
senza modificarli, alla funzione di libreria in linguaggio C @code{sprintf()},
ma solo un formato e un argomento alla volta. Quel che succede se si usa una
-specificazione posizionale resta indeterminato.
-Tuttavia, poich@'e le specificazioni posizionali sono usate principalmente
+specificazione di posizione resta indeterminato.
+Tuttavia, poich@'e le specificazioni di posizione sono usate principalmente
per le stringhe di formattazione @emph{tradotte}, e poich@'e le versioni
non-GNU di @command{awk} non utilizzano mai le stringhe tradotte, ci@`o non
dovrebbe, in pratica, causare problemi.
@@ -31762,7 +31900,6 @@ msgstr "Like, the scoop is"
@c endfile
@end example
-@cindex Linux
@cindex GNU/Linux
@quotation NOTA
Le istruzione che seguono valgono per un ambiente GNU/Linux con la
@@ -31779,6 +31916,14 @@ La directory ha un nome del tipo
@file{@var{locale}/LC_MESSAGES}, dove
@var{locale} @`e un nome di localizzazione noto alle routine C
di @command{gettext}.
+@cindex @env{LANGUAGE} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LANGUAGE}
+@cindex @env{LC_ALL} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LC_ALL}
+@cindex @env{LANG} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LANG}
+@cindex @env{LC_MESSAGES} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LC_MESSAGES}
Come sapere quale localizzazione usare? Le routine C di @command{gettext}
usano quattro variabili d'ambiente. Esse sono, nell'ordine:
@env{$LANGUAGE}, @env{$LC_ALL}, @env{$LANG}, e
@@ -31799,16 +31944,16 @@ Il passo succesivo @`e creare le directory:
$ @kbd{mkdir en_US.UTF-8 en_US.UTF-8/LC_MESSAGES}
@end example
-@cindex @code{.po}, file, conversione in @code{.mo}
-@cindex file @code{.po}, conversione in @code{.mo}
-@cindex @code{.mo}, file, conversione da @code{.po}
-@cindex file @code{.mo}, conversione da @code{.po}
-@cindex @dfn{portable object} file (.po), conversione in @dfn{message object}
file
-@cindex file, @dfn{portable object} (.po), conversione in @dfn{message object}
file
-@cindex @dfn{message object} file (.mo), conversione da @dfn{portable object}
file
-@cindex file, @dfn{message object} (.mo), conversione da @dfn{portable object}
file
-@cindex @command{msgfmt}, programma di utilit@`a
-@cindex programma di utilit@`a @command{msgfmt}
+@cindex @file{.po} (file) @subentry conversione in @file{.mo}
+@cindex file @subentry @file{.po} @subentry conversione in @file{.mo}
+@cindex @file{.mo} (file) @subentry conversione da @file{.po}
+@cindex file @subentry @file{.mo} @subentry conversione da @file{.po}
+@cindex @dfn{portable object} file (@file{.po}) @subentry conversione in
@dfn{message object} file
+@cindex file @subentry @dfn{portable object} (@file{.po}) @subentry
conversione in @dfn{message object} file
+@cindex @dfn{message object} file (@file{.mo}) @subentry conversione da
@dfn{portable object} file
+@cindex file @subentry @dfn{message object} (@file{.mo}) @subentry conversione
da @dfn{portable object} file
+@cindex @command{msgfmt} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{msgfmt}
Il programma di utilit@`a @command{msgfmt} effettua la conversione del file
leggibile, in formato testo, @file{.po} nel file, in formato binario,
@file{.mo}.
@@ -31891,7 +32036,7 @@ compilati in file @file{.gmo} che saranno usati in fase
di
esecuzione del programma.
@item
-@`E possibile usare specificazioni posizionali con le istruzioni
+@`E possibile usare specificazioni di posizione con le istruzioni
@code{sprintf()} e @code{printf} per modificare la posizione del valore
degli argomenti nelle stringhe di formato e nell'output. Ci@`o @`e utile nella
traduzione di stringhe di
@@ -31911,7 +32056,8 @@ esecuzione.
@node Debugger
@chapter Effettuare il debug dei programmi @command{awk}
-@cindex debug dei programmi @command{awk}
+@cindex debug @subentry dei programmi @command{awk}
+@cindex programmi @command{awk} @subentry debug dei
@c The original text for this chapter was contributed by Efraim Yawitz.
@@ -31963,7 +32109,7 @@ In quel caso, cosa ci si pu@`o aspettare da un tale
strumento? La risposta
dipende dal linguaggio su cui si effettua il debug, comunque in generale ci si
pu@`o attendere almeno questo:
-@cindex debugger, funzionalit@`a del
+@cindex debugger @subentry funzionalit@`a del
@itemize @value{BULLET}
@item
La possibilit@`a di osservare l'esecuzione delle istruzioni di un programma una
@@ -31997,18 +32143,18 @@ l'autore, o anche di un programma scritto da altri).
@node Terminologia nel debug
@subsection Concetti fondamentali sul debug
-@cindex debugger, terminologia
+@cindex debugger @subentry terminologia
Prima di entrare nei dettagli, dobbiamo introdurre diversi
importanti concetti che valgono per tutti i debugger.
La seguente lista definisce i termini usati nel resto di
questo @value{CHAPTER}:
@table @dfn
-@cindex @dfn{stack} di chiamata (debugger)
-@cindex debugger, @dfn{stack} di chiamata
-@cindex debugger, pila di chiamata
+@cindex @dfn{stack} (pila) delle chiamate @subentry nel debugger
+@cindex debugger @subentry @dfn{stack} di chiamata
+@cindex debugger @subentry pila di chiamata
@cindex @dfn{stack frame} (debugger)
-@cindex debugger, @dfn{stack frame}
+@cindex debugger @subentry @dfn{stack frame}
@item Stack frame
Durante la loro esecuzione i programmi normalmente chiamano delle funzioni.
Una funzione pu@`o a sua volta chiamarne un'altra, o pu@`o richiamare se
stessa
@@ -32033,10 +32179,10 @@ invocata. I comandi che stampano la pila delle
chiamate stampano anche le
informazioni su ogni @dfn{stack frame} (come vedremo pi@`u avanti in
dettaglio).
@item Punto d'interruzione
-@cindex @dfn{breakpoint} (debugger)
-@cindex punto d'interruzione (debugger)
-@cindex debugger, @dfn{breakpoint}
-@cindex debugger, punto d'interruzione
+@cindex @code{breakpoint} (comando del debugger)
+@cindex punto d'interruzione @subentry (@code{breakpoint})
+@cindex debugger @subentry @code{breakpoint}
+@cindex debugger @subentry punto d'interruzione
Durante le operazioni di debug, spesso si preferisce lasciare che il programma
venga eseguito finch@'e non raggiunge un certo punto, e da quel punto in poi si
continua l'esecuzione un'istruzione alla volta. Il modo per farlo @`e quello
di
@@ -32048,9 +32194,9 @@ vogliono.
@item Punto d'osservazione
@cindex @dfn{watchpoint} (debugger)
-@cindex punto d'interruzione (debugger)
-@cindex debugger, @dfn{watchpoint}
-@cindex debugger, punto d'interruzione
+@cindex punto d'osservazione @subetry(@code{watchpoint})
+@cindex debugger @subentry @code{watchpoint}
+@cindex debugger @subentry punto d'osservazione
Un punto d'osservazione @`e simile a un punto d'interruzione. La differenza
@`e
che i punti d'interruzione sono orientati attorno al codice; fermano il
programma quando viene raggiunto un certo punto nel codice. Un punto
@@ -32088,8 +32234,8 @@ macchina.}
@node Esempio di sessione di debug
@section Esempio di sessione di debug di @command{gawk}
-@cindex esempio di sessione di debug
-@cindex debug, esempio di sessione
+@cindex esempio @subentry di sessione di debug
+@cindex debug @subentry esempio di sessione
Per illustrare l'uso di @command{gawk} come debugger, vediamo un esempio di
sessione di debug. Come esempio verr@`a usata un'implementazione @command{awk}
@@ -32105,8 +32251,8 @@ uniq}).
@node Invocazione del debugger
@subsection Come avviare il debugger
@cindex avviare il debugger
-@cindex debugger, come avviarlo
-@cindex debugger, comandi del, si veda comando del debugger
+@cindex debugger @subentry come avviarlo
+@cindex debugger @subentry comandi del @seeentry{comando del debugger}
Per avviare il debugger in @command{gawk} si richiama il comando esattamente
come al solito, specificando solo un'opzione aggiuntiva,
@@ -32131,7 +32277,7 @@ programma nella riga di comando al debugger piuttosto
che come parte del
comando @code{run} al prompt del debugger.)
L'opzione @option{-1} @`e un'opzione per @file{uniq.awk}.
-@cindex debugger, prompt
+@cindex debugger @subentry prompt
@cindex prompt del debugger
Invece di eseguire direttamente il programma sul @file{file_di_input}, come
@command{gawk} farebbe normalmente, il debugger semplicemente carica
@@ -32182,13 +32328,13 @@ ragionevole per un punto d'interruzione in
@file{uniq.awk} @`e all'inizio della
funzione @code{se_sono_uguali()}, che confronta la riga corrente con la
precedente.
Per impostare il punto d'interruzione, usare il comando @code{b}
(@dfn{breakpoint}):
-@cindex debugger, impostare un punto d'interruzione
-@cindex @code{breakpoint}, comando del debugger
-@cindex comando del debugger, @code{breakpoint}
-@cindex @code{break}, comando del debugger
-@cindex comando del debugger, @code{break}
-@cindex @code{b}, comando del debugger
-@cindex comando del debugger, @code{b}
+@cindex debugger @subentry impostare un punto d'interruzione
+@cindex @code{breakpoint} (comando del debugger)
+@cindex comando del debugger @subentry @code{breakpoint}
+@cindex @code{break} (comando del debugger)
+@cindex comando del debugger @subentry @code{break}
+@cindex @code{b} (comando del debugger)
+@cindex comando del debugger @subentry @code{b} (alias per @code{break})
@example
gawk> @kbd{b se_sono_uguali}
@print{} Breakpoint 1 impostato al file `uniq.awk', riga 63
@@ -32198,9 +32344,9 @@ Il debugger mostra il file e il numero di riga dove si
trova il punto
d'interruzione. Ora bisogna immettere @samp{r} o @samp{run} e il programma
viene eseguito fino al primo punto d'interruzione:
-@cindex debugger, eseguire il programma
-@cindex comando del debugger, @code{run}
-@cindex @code{run}, comando del debugger
+@cindex debugger @subentry eseguire il programma
+@cindex comando del debugger @subentry @code{run}
+@cindex @code{run} (comando del debugger)
@example
gawk> @kbd{r}
@print{} Partenza del programma:
@@ -32217,11 +32363,11 @@ Prima di tutto, vediamo come siamo arrivati a questo
punto. Sulla riga di
comando battiamo @samp{bt} (che sta per ``backtrace''), e il debugger risponde
con un listato degli @dfn{stack frame} correnti:
-@cindex debugger, elementi pila, visualizzazione
-@cindex comando del debugger, @code{bt}
-@cindex @code{bt}, comando del debugger
-@cindex comando del debugger, @code{backtrace}
-@cindex @code{backtrace}, comando del debugger
+@cindex debugger @subentry elementi pila @subentry visualizzazione
+@cindex comando del debugger @subentry @code{bt} (alias per @code{backtrace})
+@cindex @code{bt} (comando del debugger) @subentry (alias per @code{backtrace})
+@cindex comando del debugger @subentry @code{backtrace}
+@cindex @code{backtrace} (comando del debugger)
@example
gawk> @kbd{bt}
@print{} #0 se_sono_uguali(n, m, campi_ultima, campi_corrente,
@@ -32243,10 +32389,10 @@ alcune variabili. Immaginiamo di battere @samp{p n}
@code{n}, un parametro di @code{se_sono_uguali()}. In realt@`a, il debugger
ci d@`a:
-@cindex comando del debugger, @code{print}
-@cindex @code{print}, comando del debugger
-@cindex comando del debugger, @code{p}
-@cindex @code{p}, comando del debugger
+@cindex comando del debugger @subentry @code{print}
+@cindex @code{print} (comando del debugger)
+@cindex comando del debugger @subentry @code{p} (alias per @code{print})
+@cindex @code{p} (comando del debugger) @subentry (alias per @code{print})
@example
gawk> @kbd{p n}
@print{} n = untyped variable
@@ -32298,10 +32444,10 @@ ulteriormente, iniziamo a ``scorrere una ad una'' le
righe di
@code{se_sono_uguali()}. Cominciamo col battere @samp{n} (per ``next''
[successivo]):
-@cindex comando del debugger, @code{n}
-@cindex @code{n}, comando del debugger
-@cindex comando del debugger, @code{next}
-@cindex @code{next}, comando del debugger
+@cindex comando del debugger @subentry @code{n} (alias per @code{next})
+@cindex @code{n} (comando del debugger) @subentry (alias per @code{next})
+@cindex comando del debugger @subentry @code{next}
+@cindex @code{next} (comando del debugger)
@example
@group
gawk> @kbd{n}
@@ -32349,8 +32495,8 @@ del vettore.
Una prima possibilit@`a @`e quella di usare degli indici:
-@cindex debugger, stampare singoli elementi di un vettore
-@cindex stampare singoli elementi di un vettore, nel debugger
+@cindex debugger @subentry stampare singoli elementi di un vettore
+@cindex stampare @subentry singoli elementi di un vettore @subentry nel
debugger
@example
gawk> @kbd{p vettore_ultima[0]}
@print{} "0" non presente nel vettore `vettore_ultima'
@@ -32368,8 +32514,8 @@ Questo metodo sarebbe piuttosto lento per un vettore
con 100 elementi, per cui
@command{gawk} fornisce una scorciatoia (che fa venire in mente un altro
linguaggio che non nominiamo):
-@cindex debugger, stampare tutti gli elementi di un vettore
-@cindex stampare tutti gli elementi di un vettore, nel debugger
+@cindex debugger @subentry stampare tutti gli elementi di un vettore
+@cindex stampare @subentry tutti gli elementi di un vettore @subentry nel
debugger
@example
gawk> @kbd{p @@vettore_ultima}
@print{} vettore_ultima["1"] = "awk,"
@@ -32451,8 +32597,8 @@ Ottenere informazioni
Comandi vari
@end itemize
-@cindex debugger, ripetere dei comandi
-@cindex ripetere dei comandi, nel debugger
+@cindex debugger @subentry ripetere dei comandi
+@cindex ripetere dei comandi @subentry nel debugger
Ciascuna di esse @`e trattata
@ifnotinfo
nelle seguenti
@@ -32489,13 +32635,13 @@ programma verr@`a eseguito come se non fosse sotto il
debugger. I comandi per
controllare i punti d'interruzione sono:
@table @asis
-@cindex comando del debugger, @code{b} (alias per @code{break})
-@cindex comando del debugger, @code{break}
-@cindex @code{break}, comando del debugger
-@cindex @code{b}, comando del debugger (alias per @code{break})
-@cindex impostare un punto d'interruzione
-@cindex breakpoint, impostare
-@cindex punto d'interruzione (breakpoint), impostare
+@cindex comando del debugger @subentry @code{b} (alias per @code{break})
+@cindex comando del debugger @subentry @code{break}
+@cindex @code{break} (comando del debugger)
+@cindex @code{b} (comando del debugger) @subentry (alias per @code{break})
+@cindex impostare @subentry un punto d'interruzione
+@cindex @code{breakpoint} (comando del debugger) @subentry impostare
+@cindex punto d'interruzione @subentry (@code{break}) @subentry impostare
@item @code{break} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
[@code{"@var{espressione}"}]
@itemx @code{b} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
[@code{"@var{espressione}"}]
Senza argomenti, imposta un punto d'interruzione alla prossima istruzione
@@ -32529,11 +32675,11 @@ valuta ogni volta che viene raggiunto quel punto
d'interruzione. Se la
condizione @`e vera, il debugger ferma l'esecuzione e rimane in attesa di un
comando. Altrimenti, continua l'esecuzione del programma.
-@cindex comando del debugger, @code{clear}
-@cindex @code{clear}, comando del debugger
-@cindex cancellare punto d'interruzione, in una determinata posizione
-@cindex punto d'interruzione, cancellare in una determinata posizione
-@cindex breakpoint in una determinata posizione, cancellare
+@cindex comando del debugger @subentry @code{clear}
+@cindex @code{clear} (comando del debugger)
+@cindex cancellare punto d'interruzione @subentry in una determinata posizione
+@cindex punto d'interruzione @subentry (@code{breakpoint}) @subentry
cancellare in una determinata posizione
+@cindex @code{breakpoint} (comando del debugger) @subentry in una determinata
posizione @subentry cancellare
@item @code{clear} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
Senza argomenti, cancella ogni eventuale punto d'interruzione all'istruzione
successiva
@@ -32557,8 +32703,8 @@ Cancella il punto (o i punti) d'interruzione
impostato/i all'ingresso della
funzione @var{funzione}.
@end table
-@cindex comando del debugger, @code{condition}
-@cindex @code{condition}, comando del debugger
+@cindex comando del debugger @subentry @code{condition}
+@cindex @code{condition} (comando del debugger)
@cindex condizione dei punti d'interruzione
@item @code{condition} @var{n} @code{"@var{espressione}"}
Aggiunge una condizione al punto d'interruzione o al punto d'osservazione
@@ -32571,31 +32717,31 @@ della condizione non viene specificata, tutte le
condizioni esistenti vengono
rimosse (cio@`e, il punto d'interruzione o di osservazione viene considerato
incondizionato).
-@cindex comando del debugger, @code{d} (alias per @code{delete})
-@cindex comando del debugger, @code{delete}
-@cindex @code{delete}, comando del debugger
-@cindex @code{d}, comando del debugger (alias per @code{delete})
-@cindex cancellare punto d'interruzione, per numero
-@cindex punto d'interruzione, cancellare per numero
-@cindex breakpoint, cancellare per numero
+@cindex comando del debugger @subentry @code{d} (alias per @code{delete})
+@cindex comando del debugger @subentry @code{delete}
+@cindex @code{delete} (comando del debugger)
+@cindex @code{d} (comando del debugger) @subentry (alias per @code{delete})
+@cindex cancellare punto d'interruzione @subentry per numero
+@cindex punto d'interruzione @subentry (@code{breakpoint}) @subentry
cancellare per numero
+@cindex @code{breakpoint} (comando del debugger) @subentry cancellare per
numero
@item @code{delete} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
@itemx @code{d} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
Cancella i punti d'interruzione specificati o un intervallo di punti
d'interruzione. Se non vengono forniti argomenti, cancella tutti i
punti d'interruzione esistenti.
-@cindex comando del debugger, @code{disable}
-@cindex @code{disable}, comando del debugger
+@cindex comando del debugger @subentry @code{disable}
+@cindex @code{disable} (comando del debugger)
@cindex disabilitare punto d'interruzione
-@cindex punto d'interruzione, come disabilitare o abilitare
+@cindex punto d'interruzione @subentry (@code{disable}) @subentry come
disabilitare o abilitare
@item @code{disable} [@var{n1 n2} @dots{} | @var{n}--@var{m}]
Disabilita punti d'interruzione specificati o un intervallo di essi. Senza
argomenti, disabilita tutti i punti d'interruzione.
-@cindex comando del debugger, @code{e} (alias per @code{enable})
-@cindex comando del debugger, @code{enable}
-@cindex @code{enable}, comando del debugger
-@cindex @code{e}, comando del debugger (alias per @code{enable})
+@cindex comando del debugger @subentry @code{e} (alias per @code{enable})
+@cindex comando del debugger @subentry @code{enable}
+@cindex @code{enable} (comando del debugger)
+@cindex @code{e} (comando del debugger) @subentry (alias per @code{enable})
@cindex abilitare un punto d'interruzione
@item @code{enable} [@code{del} | @code{once}] [@var{n1 n2} @dots{}]
[@var{n}--@var{m}]
@itemx @code{e} [@code{del} | @code{once}] [@var{n1 n2} @dots{}]
[@var{n}--@var{m}]
@@ -32614,19 +32760,19 @@ Abilita dei punti d'interruzione @dfn{una tantum},
poi li cancella quando il
programma si ferma in quel punto.
@end table
-@cindex comando del debugger, @code{ignore}
-@cindex @code{ignore}, comando del debugger
+@cindex comando del debugger @subentry @code{ignore}
+@cindex @code{ignore} (comando del debugger)
@cindex ignorare un punto d'interruzione
@item @code{ignore} @var{n} @var{contatore}
Ignora il punto d'interruzione numero @var{n} le successive
@var{contatore} volte in cui viene raggiunto.
-@cindex comando del debugger, @code{t} (alias per @code{tbreak})
-@cindex comando del debugger, @code{tbreak}
-@cindex @code{tbreak}, comando del debugger
-@cindex @code{t}, comando del debugger (alias per @code{tbreak})
-@cindex punto d'interruzione temporaneo
-@cindex temporaneo, punto d'interruzione
+@cindex comando del debugger @subentry @code{t} (alias per @code{tbreak})
+@cindex comando del debugger @subentry @code{tbreak}
+@cindex @code{tbreak} (comando del debugger)
+@cindex @code{t} (comando del debugger) @subentry (alias per @code{tbreak})
+@cindex punto d'interruzione @subentry (@code{tbreak}) temporaneo
+@cindex temporaneo @subentry punto d'interruzione
@item @code{tbreak} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
@itemx @code{t} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
Imposta un punto d'interruzione temporaneo (abilitato solo per la prima volta
@@ -32641,13 +32787,13 @@ programma, osservando il suo comportamento. Ci sono
pi@`u comandi per
controllare l'esecuzione del programma di quelli visti nei precedenti esempi:
@table @asis
-@cindex comando del debugger, @code{commands}
-@cindex @code{commands}, comando del debugger
-@cindex comando del debugger, @code{silent}
-@cindex @code{silent}, comando del debugger
-@cindex comando del debugger, @code{end}
-@cindex @code{end}, comando del debugger
-@cindex punto d'interruzione, comandi
+@cindex comando del debugger @subentry @code{commands}
+@cindex @code{commands} (comando del debugger)
+@cindex comando del debugger @subentry @code{silent}
+@cindex @code{silent} (comando del debugger)
+@cindex comando del debugger @subentry @code{end}
+@cindex @code{end} (comando del debugger)
+@cindex punto d'interruzione @subentry comandi da eseguire al
@cindex comandi da eseguire al punto d'interruzione
@item @code{commands} [@var{n}]
@itemx @code{silent}
@@ -32676,11 +32822,11 @@ gawk> @kbd{commands}
gawk>
@end example
-@cindex comando del debugger, @code{c} (alias per @code{continue})
-@cindex comando del debugger, @code{continue}
-@cindex continuare esecuzione programma, nel debugger
-@cindex debugger, continuare esecuzione programma
-@cindex @code{continue}, comando del debugger
+@cindex comando del debugger @subentry @code{c} (alias per @code{continue})
+@cindex comando del debugger @subentry @code{continue}
+@cindex continuare esecuzione programma @subentry nel debugger
+@cindex debugger @subentry continuare esecuzione programma
+@cindex @code{continue} (comando del debugger)
@item @code{continue} [@var{contatore}]
@itemx @code{c} [@var{contatore}]
Riprende l'esecuzione del programma. Se si riparte da un punto d'interruzione
@@ -32688,33 +32834,33 @@ e viene specificato @var{contatore}, il punto
d'interruzione in quella
posizione viene ignorato per le prossime @var{contatore} volte prima di
fermarsi nuovamente.
-@cindex comando del debugger, @code{finish}
-@cindex @code{finish}, comando del debugger
+@cindex comando del debugger @subentry @code{finish}
+@cindex @code{finish} (comando del debugger)
@item @code{finish}
Esegue fino a quando lo stack frame selezionato completa l'esecuzione.
Stampa il valore restituito.
-@cindex comando del debugger, @code{n} (alias per @code{next})
-@cindex comando del debugger, @code{next}
-@cindex @code{next}, comando del debugger
-@cindex @code{n}, comando del debugger (alias per @code{next})
-@cindex esecuzione di un solo passo, nel debugger
+@cindex comando del debugger @subentry @code{n} (alias per @code{next})
+@cindex comando del debugger @subentry @code{next}
+@cindex @code{next} (comando del debugger)
+@cindex @code{n} (comando del debugger) @subentry (alias per @code{next})
+@cindex esecuzione di un solo passo @subentry nel debugger
@item @code{next} [@var{contatore}]
@itemx @code{n} [@var{contatore}]
Continua l'esecuzione alla successiva riga sorgente, saltando le chiamate di
funzione. L'argomento @var{contatore} controlla il numero di ripetizioni
dell'azione, come in @code{step}.
-@cindex comando del debugger, @code{ni} (alias per @code{nexti})
-@cindex comando del debugger, @code{nexti}
-@cindex @code{nexti}, comando del debugger
-@cindex @code{ni}, comando del debugger (alias for @code{nexti})
+@cindex comando del debugger @subentry @code{ni} (alias per @code{nexti})
+@cindex comando del debugger @subentry @code{nexti}
+@cindex @code{nexti} (comando del debugger)
+@cindex @code{ni} (comando del debugger) @subentry (alias for @code{nexti})
@item @code{nexti} [@var{contatore}]
@itemx @code{ni} [@var{contatore}]
Esegue una o @var{contatore} istruzioni, comprese le chiamate di funzione.
-@cindex comando del debugger, @code{return}
-@cindex @code{return}, comando del debugger
+@cindex comando del debugger @subentry @code{return}
+@cindex @code{return} (comando del debugger)
@item @code{return} [@var{valore}]
Cancella l'esecuzione di una chiamata di funzione. Se @var{valore} (una
stringa o un numero) viene specificato, @`e usato come codice di ritorno della
@@ -32723,10 +32869,10 @@ correntemente in esecuzione; cio@`e, il frame numero
0), ignora tutti i frame
pi@`u interni di quello selezionato, e il chiamante del frame selezionato
diventa il frame pi@`u interno.
-@cindex comando del debugger, @code{r} (alias per @code{run})
-@cindex comando del debugger, @code{run}
-@cindex @code{run}, comando del debugger
-@cindex @code{r}, comando del debugger (alias per @code{run})
+@cindex comando del debugger @subentry @code{r} (alias per @code{run})
+@cindex comando del debugger @subentry @code{run}
+@cindex @code{run} (comando del debugger)
+@cindex @code{r} (comando del debugger) @subentry (alias per @code{run})
@item @code{run}
@itemx @code{r}
Avvia/riavvia l'esecuzione del programma. Quando il programma viene riavviato,
@@ -32734,10 +32880,10 @@ il debugger mantiene i punti d'interruzione e di
osservazione, la cronologia
dei comandi, la visualizzazione automatica di variabili, e le opzioni del
debugger.
-@cindex comando del debugger, @code{s} (alias per @code{step})
-@cindex comando del debugger, @code{step}
-@cindex @code{step}, comando del debugger
-@cindex @code{s}, comando del debugger (alias per @code{step})
+@cindex comando del debugger @subentry @code{s} (alias per @code{step})
+@cindex comando del debugger @subentry @code{step}
+@cindex @code{step} (comando del debugger)
+@cindex @code{s} (comando del debugger) @subentry (alias per @code{step})
@item @code{step} [@var{contatore}]
@itemx @code{s} [@var{contatore}]
Continua l'esecuzione finch@'e il controllo non raggiunge una diversa riga del
@@ -32746,10 +32892,10 @@ all'interno della riga. Se viene fornito l'argomento
@var{contatore},
esegue il numero di istruzioni specificate prima di fermarsi, a meno che non
s'imbatta in un punto d'interruzione o di osservazione.
-@cindex comando del debugger, @code{si} (alias per @code{stepi})
-@cindex comando del debugger, @code{stepi}
-@cindex @code{stepi}, comando del debugger
-@cindex @code{si}, comando del debugger (alias per @code{stepi})
+@cindex comando del debugger @subentry @code{si} (alias per @code{stepi})
+@cindex comando del debugger @subentry @code{stepi}
+@cindex @code{stepi} (comando del debugger)
+@cindex @code{si} (comando del debugger) @subentry (alias per @code{stepi})
@item @code{stepi} [@var{contatore}]
@itemx @code{si} [@var{contatore}]
Esegue una o @var{contatore} istruzioni, comprese le chiamate di funzione.
@@ -32757,10 +32903,10 @@ Esegue una o @var{contatore} istruzioni, comprese le
chiamate di funzione.
si veda l'output mostrato sotto @code{dump} nella
@ref{Comandi vari del debugger}.)
-@cindex comando del debugger, @code{u} (alias per @code{until})
-@cindex comando del debugger, @code{until}
-@cindex @code{until}, comando del debugger
-@cindex @code{u}, comando del debugger (alias per @code{until})
+@cindex comando del debugger @subentry @code{u} (alias per @code{until})
+@cindex comando del debugger @subentry @code{until}
+@cindex @code{until} (comando del debugger)
+@cindex @code{u} (comando del debugger) @subentry (alias per @code{until})
@item @code{until} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
@itemx @code{u} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
Senza argomenti, prosegue l'esecuzione finch@'e non viene raggiunta una riga
@@ -32776,8 +32922,8 @@ lo @dfn{stack frame} corrente non termina l'esecuzione.
I comandi per vedere e modificare variabili all'interno di @command{gawk} sono:
@table @asis
-@cindex comando del debugger, @code{display}
-@cindex @code{display}, comando del debugger
+@cindex comando del debugger @subentry @code{display}
+@cindex @code{display} (comando del debugger)
@item @code{display} [@var{var} | @code{$}@var{n}]
Aggiunge la variabile @var{var} (o il campo @code{$@var{n}}) alla lista di
visualizzazione. Il valore della variabile o del campo @`e visualizzato ogni
@@ -32798,9 +32944,9 @@ raggiunge un contesto dove la variabile con quel nome
non esiste pi@`u.
Senza argomenti, @code{display} mostra i valori correnti degli elementi della
lista.
-@cindex comando del debugger, @code{eval}
-@cindex @code{eval}, comando del debugger
-@cindex valutare espressioni, nel debugger
+@cindex comando del debugger @subentry @code{eval}
+@cindex @code{eval} (comando del debugger)
+@cindex valutare espressioni @subentry nel debugger
@item @code{eval "@var{istruzioni awk}"}
Valuta @var{istruzioni awk} nel contesto del programma in esecuzione.
Si pu@`o fare qualsiasi cosa che un programma @command{awk} farebbe: assegnare
@@ -32825,11 +32971,11 @@ definire
``variabili locali'' che esistono nel contesto delle @var{istruzioni awk},
invece di usare variabili o parametri di funzione gi@`a definiti nel programma.
-@cindex comando del debugger, @code{p} (alias per @code{print})
-@cindex comando del debugger, @code{print}
-@cindex @code{print}, comando del debugger
-@cindex @code{p}, comando del debugger (alias per @code{print})
-@cindex stampare variabili, nel debugger
+@cindex comando del debugger @subentry @code{p} (alias per @code{print})
+@cindex comando del debugger @subentry @code{print}
+@cindex @code{print} (comando del debugger)
+@cindex @code{p} (comando del debugger) @subentry (alias per @code{print})
+@cindex stampare @subentry variabili @subentry nel debugger
@item @code{print} @var{var1}[@code{,} @var{var2} @dots{}]
@itemx @code{p} @var{var1}[@code{,} @var{var2} @dots{}]
Stampa i valori di una o pi@`u variabili o campi di @command{gawk}.
@@ -32855,8 +33001,8 @@ gawk> @kbd{print @@a}
L'esempio stampa gli indici e i corrispondenti valori di tutti gli elementi
del vettore @code{a}.
-@cindex comando del debugger, @code{printf}
-@cindex @code{printf}, comando del debugger
+@cindex comando del debugger @subentry @code{printf}
+@cindex @code{printf} (comando del debugger)
@item @code{printf} @var{formato} [@code{,} @var{arg} @dots{}]
Stampa un testo formattato. Il @var{formato} pu@`o includere sequenze di
protezione, come @samp{\n}
@@ -32864,9 +33010,9 @@ protezione, come @samp{\n}
Non viene stampato nessun ritorno a capo che non sia stato specificato
esplicitamente.
-@cindex comando del debugger, @code{set}
-@cindex @code{set}, comando del debugger
-@cindex assegnare valori a variabili, nel debugger
+@cindex comando del debugger @subentry @code{set}
+@cindex @code{set} (comando del debugger)
+@cindex assegnamento @subentry di valori a variabili, nel debugger
@item @code{set} @var{var}@code{=}@var{valore}
Assegna un valore costante (numero o stringa) a una variabile o a un campo di
@command{awk}.
@@ -32876,11 +33022,11 @@ I valori di stringa devono essere racchiusi tra doppi
apici
Si possono impostare anche delle variabili speciali di @command{awk}, come
@code{FS}, @code{NF}, @code{NR}, e cos@`{@dotless{i}} via.
-@cindex comando del debugger, @code{w} (alias per @code{watch})
-@cindex comando del debugger, @code{watch}
-@cindex @code{watch}, comando del debugger
-@cindex @code{w}, comando del debugger (alias per @code{watch})
-@cindex impostare un punto d'osservazione
+@cindex comando del debugger @subentry @code{w} (alias per @code{watch})
+@cindex comando del debugger @subentry @code{watch}
+@cindex @code{watch} (comando del debugger)
+@cindex @code{w} (comando del debugger) @subentry (alias per @code{watch})
+@cindex impostare @subentry un punto d'osservazione
@item @code{watch} @var{var} | @code{$}@var{n} [@code{"@var{espressione}"}]
@itemx @code{w} @var{var} | @code{$}@var{n} [@code{"@var{espressione}"}]
Aggiunge la variabile @var{var} (o il campo @code{$@var{n}}) alla lista dei
@@ -32895,15 +33041,15 @@ ogni volta che viene raggiunto il punto
d'osservazione. Se la condizione @`e
vera, il debugger interrompe l'esecuzione e rimane in attesa di un comando.
Altrimenti, @command{gawk} prosegue nell'esecuzione del programma.
-@cindex comando del debugger, @code{undisplay}
-@cindex @code{undisplay}, comando del debugger
-@cindex interruzione visualizzazioni automatiche, nel debugger
+@cindex comando del debugger @subentry @code{undisplay}
+@cindex @code{undisplay} (comando del debugger)
+@cindex interruzione visualizzazioni automatiche @subentry nel debugger
@item @code{undisplay} [@var{n}]
Rimuove l'elemento numero @var{n} (o tutti gli elementi, se non vi sono
argomenti) dalla lista delle visualizzazioni automatiche.
-@cindex comando del debugger, @code{unwatch}
-@cindex @code{unwatch}, comando del debugger
+@cindex comando del debugger @subentry @code{unwatch}
+@cindex @code{unwatch} (comando del debugger)
@cindex cancellare punto d'osservazione
@item @code{unwatch} [@var{n}]
Rimuove l'elemento numero @var{n} (o tutti gli elementi, se non vi sono
@@ -32922,16 +33068,16 @@ all'interno della pila per vedere qual era lo stato
delle cose nelle funzioni
che hanno chiamato quella in cui ci si trova. I comandi per far questo sono:
@table @asis
-@cindex comando del debugger, @code{bt} (alias per @code{backtrace})
-@cindex comando del debugger, @code{backtrace}
-@cindex comando del debugger, @code{where} (alias per @code{backtrace})
-@cindex @code{backtrace}, comando del debugger
-@cindex @code{bt}, comando del debugger (alias per @code{backtrace})
-@cindex @code{where}, comando del debugger (alias per @code{backtrace})
-@cindex chiamate, @dfn{stack} (pila) delle, mostrare nel debugger
-@cindex @dfn{stack} (pila) delle chiamate, mostrare nel debugger
-@cindex pila (@dfn{stack}) delle chiamate, mostrare nel debugger
-@cindex tracciatura a ritroso, mostrare nel debugger
+@cindex comando del debugger @subentry @code{bt} (alias per @code{backtrace})
+@cindex comando del debugger @subentry @code{backtrace}
+@cindex comando del debugger @subentry @code{where} (alias per
@code{backtrace})
+@cindex @code{backtrace} (comando del debugger)
+@cindex @code{bt} (comando del debugger) @subentry (alias per @code{backtrace})
+@cindex @code{where} (comando del debugger) @subentry (alias per
@code{backtrace})
+@cindex descrizione di @subentry @dfn{stack}, pila delle @subentry nel debugger
+@cindex @dfn{stack} (pila) delle chiamate @subentry visualizzare nel debugger
+@cindex pila (@dfn{stack}) delle chiamate @subentry visualizzare nel debugger
+@cindex tracciatura a ritroso @subentry mostrare nel debugger
@item @code{backtrace} [@var{contatore}]
@itemx @code{bt} [@var{contatore}]
@itemx @code{where} [@var{contatore}]
@@ -32943,16 +33089,16 @@ ritroso mostra il nome e gli argomenti di ciascuna
funzione, il sorgente
viene mantenuto per i vecchi utenti di GDB che potrebbero essere abituati a
quel comando.
-@cindex comando del debugger, @code{down}
-@cindex @code{down}, comando del debugger
+@cindex comando del debugger @subentry @code{down}
+@cindex @code{down} (comando del debugger)
@item @code{down} [@var{contatore}]
Sposta @var{contatore} (default 1) frame sotto la pila verso il frame pi@`u
interno.
Poi seleziona e stampa il frame.
-@cindex comando del debugger, @code{f} (alias per @code{frame})
-@cindex comando del debugger, @code{frame}
-@cindex @code{frame}, comando del debugger
-@cindex @code{f}, comando del debugger (alias per @code{frame})
+@cindex comando del debugger @subentry @code{f} (alias per @code{frame})
+@cindex comando del debugger @subentry @code{frame}
+@cindex @code{frame} (comando del debugger)
+@cindex @code{f} (comando del debugger) @subentry (alias per @code{frame})
@item @code{frame} [@var{n}]
@itemx @code{f} [@var{n}]
Seleziona e stampa lo @dfn{stack frame} @var{n}. Il frame 0 @`e quello
@@ -32962,8 +33108,8 @@ col numero pi@`u alto @`e quello per il programma
principale. Le informazioni
stampate comprendono il numero di frame, i nomi delle funzioni e degli
argomenti, i file sorgenti e le righe sorgenti.
-@cindex comando del debugger, @code{up}
-@cindex @code{up}, comando del debugger
+@cindex comando del debugger @subentry @code{up}
+@cindex @code{up} (comando del debugger)
@item @code{up} [@var{contatore}]
Sposta @var{contatore} (default 1) frame sopra la pila verso il frame pi@`u
esterno. Poi seleziona e stampa il frame.
@@ -32980,10 +33126,10 @@ quest'informazione, chiamato convenientemente
@code{info}. @code{info}
sapere:
@table @asis
-@cindex comando del debugger, @code{i} (alias per @code{info})
-@cindex comando del debugger, @code{info}
-@cindex @code{info}, comando del debugger
-@cindex @code{i}, comando del debugger (alias per @code{info})
+@cindex comando del debugger @subentry @code{i} (alias per @code{info})
+@cindex comando del debugger @subentry @code{info}
+@cindex @code{info} (comando del debugger)
+@cindex @code{i} (comando del debugger) @subentry (alias per @code{info})
@item @code{info} @var{cosa}
@itemx @code{i} @var{cosa}
Il valore di @var{cosa} dovrebbe essere uno dei seguenti:
@@ -32991,39 +33137,40 @@ Il valore di @var{cosa} dovrebbe essere uno dei
seguenti:
@c nested table
@table @code
@item args
-@cindex mostrare argomenti delle funzioni, nel debugger
-@cindex debugger, mostrare argomenti delle funzioni
+@cindex mostrare nel debugger @subentry argomenti delle funzioni
+@cindex debugger @subentry mostrare argomenti delle funzioni
Elenca gli argomenti del frame selezionato.
@item break
-@cindex mostrare punti d'interruzione, nel debugger
-@cindex debugger, mostrare punti d'interruzione
+@cindex mostrare nel debugger @subentry punti d'interruzione
+@cindex debugger @subentry mostrare punti d'interruzione
Elenca tutti i punti d'interruzione attualmente impostati.
@item display
-@cindex visualizzazioni automatiche, nel debugger
-@cindex debugger, visualizzazioni automatiche
+@cindex visualizzazioni automatiche @subentry nel debugger
+@cindex debugger @subentry visualizzazioni automatiche
Elenca tutti gli elementi della lista delle visualizzazioni automatiche.
@item frame
-@cindex descrizione degli @dfn{stack frame} delle chiamate, nel debugger
-@cindex debugger, descrizione degli @dfn{stack frame} delle chiamate
+@cindex descrizione di @subentry @dfn{stack frame} delle chiamate @subentry
nel debugger
+@cindex debugger @subentry descrizione degli @dfn{stack frame} delle chiamate
D@`a una descrizione degli @dfn{stack frame} selezionati.
@item functions
-@cindex elencare definizioni delle funzioni, nel debugger
-@cindex debugger, elencare definizioni delle funzioni
+@cindex elencare @subentry definizioni delle funzioni @subentry nel debugger
+@cindex debugger @subentry elencare definizioni delle funzioni
Elenca tutte le definizioni delle funzioni compresi i @value{FNS} e
i numeri di riga.
@item locals
-@cindex mostrare variabili locali, nel debugger
-@cindex debugger, mostrare variabili locali
+@cindex mostrare nel debugger @subentry variabili locali
+@cindex debugger @subentry mostrare variabili locali
Elenca le variabili locali dei frame selezionati.
@item source
-@cindex mostrare il nome del file sorgente corrente, nel debugger
-@cindex debugger, mostrare il nome del file sorgente corrente
+@cindex mostrare nel debugger @subentry nome del file sorgente corrente
+@cindex debugger @subentry mostrare il nome del file sorgente corrente
+@cindex file @subentry sorgente corrente, mostrare nel debugger
Stampa il nome del file sorgente corrente. Ogni volta che il programma si
interrompe, il file sorgente corrente @`e il file che contiene l'istruzione
corrente. Quando il debugger viene avviato per la prima volta, il file
@@ -33032,18 +33179,18 @@ Il comando @samp{list
@var{nome-file}:@var{numero-riga}} pu@`o essere usato in
qualsiasi momento per cambiare il sorgente corrente.
@item sources
-@cindex mostrare tutti i file sorgente, nel debugger
-@cindex debugger, mostrare tutti i file sorgenti
-Elenca tutti i sorgenti del programma.
+@cindex mostrare nel debugger @subentry nome di tutti i file sorgente
+@cindex debugger @subentry mostrare il nome di tutti i file sorgente
+Elenca tutti i file sorgente del programma.
@item variables
-@cindex elencare tutte le variabili locali, nel debugger
-@cindex debugger, elencare tutte le variabili locali
+@cindex elencare @subentry tutte le variabili locali @subentry nel debugger
+@cindex debugger @subentry elencare tutte le variabili locali
Elenca tutte le variabili locali.
@item watch
-@cindex mostrare i punti d'osservazione, nel debugger
-@cindex debugger, mostrare i punti d'osservazione
+@cindex mostrare nel debugger @subentry punti d'osservazione
+@cindex debugger @subentry mostrare i punti d'osservazione
Elenca tutti gli elementi della lista dei punti d'osservazione.
@end table
@end table
@@ -33053,12 +33200,12 @@ salvare lo stato del debugger e la capacit@`a di
eseguire comandi del debugger
da un file. I comandi sono:
@table @asis
-@cindex comando del debugger, @code{o} (alias per @code{option})
-@cindex comando del debugger, @code{option}
-@cindex @code{option}, comando del debugger
-@cindex @code{o}, comando del debugger (alias per @code{option})
+@cindex comando del debugger @subentry @code{o} (alias per @code{option})
+@cindex comando del debugger @subentry @code{option}
+@cindex @code{option} (comando del debugger)
+@cindex @code{o} (comando del debugger) @subentry (alias per @code{option})
@cindex visualizzare le opzioni del debugger
-@cindex debugger, opzioni del
+@cindex debugger @subentry opzioni del
@item @code{option} [@var{nome}[@code{=}@var{valore}]]
@itemx @code{o} [@var{nome}[@code{=}@var{valore}]]
Senza argomenti, visualizza le opzioni del debugger disponibili e i loro valori
@@ -33071,56 +33218,57 @@ Le opzioni disponibili sono:
@c asis for docbook
@table @asis
@item @code{history_size}
-@cindex debugger, dimensione della cronologia
+@cindex debugger @subentry dimensione della cronologia
Imposta il numero massimo di righe da mantenere nel file della cronologia
@file{./.gawk_history}. Il valore di default @`e 100.
@item @code{listsize}
-@cindex debugger, numero di righe nella lista di default
+@cindex debugger @subentry numero di righe nella lista di default
Specifica il numero di righe che @code{list} deve stampare. Il valore di
default @`e 15.
@item @code{outfile}
-@cindex ridirezionare l'output di @command{gawk}, nel debugger
-@cindex debugger, ridirezionare l'output di @command{gawk}
+@cindex ridirezionare l'output di @command{gawk} @subentry nel debugger
+@cindex debugger @subentry ridirezionare l'output di @command{gawk}
Invia l'output di @command{gawk} in un file; l'output del debugger @`e
visualizzato comunque anche
nello standard output. Assegnare come valore stringa vuota (@code{""})
reimposta l'output solo allo standard output.
@item @code{prompt}
-@cindex debugger, prompt
+@cindex debugger @subentry prompt
+@cindex prompt del debugger
Cambia la riga per l'immissione dei comandi del debugger. Il valore di
default @`e @samp{@w{gawk> }}.
@item @code{save_history} [@code{on} | @code{off}]
-@cindex debugger, file della cronologia
+@cindex debugger @subentry file della cronologia
Salva la cronologia dei comandi nel file @file{./.gawk_history}.
L'impostazione di default @`e @code{on}.
@item @code{save_options} [@code{on} | @code{off}]
-@cindex salvataggio opzioni, nel debugger
-@cindex debugger, salvataggio opzioni
+@cindex salvataggio opzioni @subentry nel debugger
+@cindex debugger @subentry salvataggio opzioni
Salva le opzioni correnti nel file @file{./.gawkrc} all'uscita.
L'impostazione di default @`e @code{on}.
Le opzioni sono lette di nuovo all'avvio della sessione successiva.
@item @code{trace} [@code{on} | @code{off}]
-@cindex istruzioni, tener traccia delle, nel debugger
-@cindex debugger, tener traccia delle istruzioni
+@cindex istruzioni @subentry tener traccia delle @subentry nel debugger
+@cindex debugger @subentry tener traccia delle istruzioni
Attiva o disattiva il tracciamento delle istruzioni. L'impostazione di default
@`e @code{off}.
@end table
-@cindex debugger, salvare dei comandi su un file
-@cindex salvare dei comandi su un file, nel debugger
+@cindex debugger @subentry salvare dei comandi su un file
+@cindex salvare dei comandi su un file @subentry nel debugger
@item @code{save} @var{nome-file}
Salva i comandi eseguiti nella sessione corrente nel @value{FN} indicato,
in modo da poterli ripetere in seguito usando il comando @command{source}.
@item @code{source} @var{nome-file}
-@cindex debugger, leggere comandi da un file
-@cindex leggere comandi da un file, nel debugger
+@cindex debugger @subentry leggere comandi da un file
+@cindex leggere @subentry comandi da un file nel debugger
Esegue comandi contenuti in un file; un errore in un comando non impedisce
l'esecuzione dei comandi successivi. In un file di comandi sono consentiti
i commenti (righe che iniziano con @samp{#}).
@@ -33144,8 +33292,8 @@ Ci sono alcuni altri comandi che non rientrano nelle
precedenti categorie,
come i seguenti:
@table @asis
-@cindex comando del debugger, @code{dump}
-@cindex @code{dump}, comando del debugger
+@cindex comando del debugger @subentry @code{dump}
+@cindex @code{dump} (comando del debugger)
@item @code{dump} [@var{nome-file}]
Riversa il @dfn{byte code} del programma nello standard output o nel file
definito in @var{nome-file}. Questo stampa una rappresentazione delle
@@ -33208,28 +33356,28 @@ gawk>
@end group
@end smallexample
-@cindex comando del debugger, @code{exit}
-@cindex @code{exit}, comando del debugger
+@cindex comando del debugger @subentry @code{exit}
+@cindex @code{exit} (comando del debugger)
@cindex uscire dal debugger
-@cindex debugger, uscire dal
+@cindex debugger @subentry uscire dal
@item @code{exit}
Esce dal debugger.
Si veda la voce @samp{quit}, pi@`u avanti in quest'elenco.
-@cindex comando del debugger, @code{h} (alias per @code{help})
-@cindex comando del debugger, @code{help}
-@cindex @code{help}, comando del debugger
-@cindex @code{h}, comando del debugger (alias per @code{help})
+@cindex comando del debugger @subentry @code{h} (alias per @code{help})
+@cindex comando del debugger @subentry @code{help}
+@cindex @code{help} (comando del debugger)
+@cindex @code{h} (comando del debugger) @subentry (alias per @code{help})
@item @code{help}
@itemx @code{h}
Stampa una lista di tutti i comandi del debugger di @command{gawk} con un breve
sommario su come usarli. @samp{help @var{comando}} stampa l'informazione sul
comando @var{comando}.
-@cindex comando del debugger, @code{l} (alias per @code{list})
-@cindex comando del debugger, @code{list}
-@cindex @code{list}, comando del debugger
-@cindex @code{l}, comando del debugger (alias per @code{list})
+@cindex comando del debugger @subentry @code{l} (alias per @code{list})
+@cindex comando del debugger @subentry @code{list}
+@cindex @code{list} (comando del debugger)
+@cindex @code{l} (comando del debugger) @subentry (alias per @code{list})
@item @code{list} [@code{-} | @code{+} | @var{n} |
@var{nome-file}@code{:}@var{n} | @var{n}--@var{m} | @var{funzione}]
@itemx @code{l} [@code{-} | @code{+} | @var{n} |
@var{nome-file}@code{:}@var{n} | @var{n}--@var{m} | @var{funzione}]
Stampa le righe specificate (per default 15) dal file sorgente corrente
@@ -33260,12 +33408,12 @@ Stampa righe centrate attorno all'inizio della
funzione @var{function}.
Questo comando pu@`o cambiare il file sorgente corrente.
@end table
-@cindex comando del debugger, @code{q} (alias per @code{quit})
-@cindex comando del debugger, @code{quit}
-@cindex @code{quit}, comando del debugger
-@cindex @code{q}, comando del debugger (alias per @code{quit})
+@cindex comando del debugger @subentry @code{q} (alias per @code{quit})
+@cindex comando del debugger @subentry @code{quit}
+@cindex @code{quit} (comando del debugger)
+@cindex @code{q} (comando del debugger) @subentry (alias per @code{quit})
@cindex uscire dal debugger
-@cindex debugger, uscire dal
+@cindex debugger @subentry uscire dal
@item @code{quit}
@itemx @code{q}
Esce dal debugger. Fare il debug @`e divertente, ma noi tutti a volte
@@ -33275,8 +33423,8 @@ prima, se si sta eseguendo un programma, il debugger
avverte quando si batte
@samp{q} o @samp{quit}, in modo da essere sicuri di voler realmente abbandonare
il debug.
-@cindex comando del debugger, @code{trace}
-@cindex @code{trace}, comando del debugger
+@cindex comando del debugger @subentry @code{trace}
+@cindex @code{trace} (comando del debugger)
@item @code{trace} [@code{on} | @code{off}]
Abilita o disabilita la stampa continua delle istruzioni che si stanno per
eseguire, assieme alle righe di @command{awk} che implementano.
@@ -33291,10 +33439,10 @@ familiari.
@node Supporto per Readline
@section Supporto per Readline
-@cindex completamento dei comandi, nel debugger
-@cindex debugger, completamento dei comandi nel
-@cindex espansione della cronologia, nel debugger
-@cindex debugger, espansione della cronologia
+@cindex completamento dei comandi @subentry nel debugger
+@cindex debugger @subentry completamento dei comandi nel
+@cindex espansione della cronologia @subentry nel debugger
+@cindex debugger @subentry espansione della cronologia
Se @command{gawk} @`e compilato con
@uref{http://cnswww.cns.cwru.edu/php/chet/readline/readline.html, la libreria
@@ -33334,8 +33482,8 @@ e
@node Limitazioni
@section Limitazioni
-@cindex debugger, limitazioni
-@cindex limitazioni del debugger
+@cindex debugger @subentry limitazioni
+@cindex limitazioni @subentry del debugger
Si spera che il lettore trovi il debugger di @command{gawk} utile e piacevole
da usare, ma come accade per ogni programma, specialmente nelle sue prime
versioni, ha ancora delle limitazioni. Quelle di cui @`e bene essere al
corrente sono:
@@ -33557,10 +33705,10 @@ Chi ne trovasse, @`e pregato di notificarlo
(@xref{Bug}).
@node Spazio-dei-nomi globale
@section Lo spazio-dei-nomi globale in @command{awk} standard
-@cindex spazio-dei-nomi, definizione
-@cindex spazio-dei-nomi, globale, in @command{awk} standard
+@cindex spazio-dei-nomi @subentry definizione
+@cindex spazio-dei-nomi @subentry globale @subentry in @command{awk} standard
In @command{awk} standard, esiste un unico @dfn{spazio-dei-nomi} globale.
-Ci@`o significa che @emph{tutti} i nomi di funzione e i nomi di variabili
+Ci@`o significa che @emph{tutti} i nomi di funzione e i nomi di variabili
globali devono essere unici.
Per esempio, due differenti file sorgenti di @command{awk},
se usati insieme,
@@ -33577,8 +33725,8 @@ incidentalmente entrare in conflitto con le variabili
globali
``private'' proprie di un'altra libreria
(@pxref{Nomi di variabili di libreria}).
-@cindex pacchetto, definizione di
-@cindex modulo, definizione di
+@cindex pacchetto @subentry definizione di
+@cindex modulo @subentry definizione di
Molti altri linguaggi di programmazione risolvono questo problema rendendo
disponibile qualche tipo di controllo sullo spazio-dei-nomi: un modo per
poter stabilire che ``questa funzione @`e nello spazio-dei-nomi @var{xxx},
@@ -33597,12 +33745,13 @@ spazi-dei-nomi separati fra loro.
@node Nomi qualificati
@section Nomi qualificati
-@cindex nome qualificato, definizione di
-@cindex qualificato, nome, definizione di
-@cindex spazio-dei-nomi, nomi qualificati
-@cindex @code{::}, spazio-dei-nomi, separatore
-@cindex nome del componente
-@cindex componente, nome del
+@cindex nomi @subentry qualificati (in uno spazio-dei-nomi) @subentry
definizione di
+@cindex qualificato @subentry nome @subentry definizione di
+@cindex spazio-dei-nomi @subentry nomi qualificati
+@cindex @code{:} (due punti) @subentry @code{::} @subentry separatore
spazio-dei-nomi
+@cindex due punti (@code{:}) @subentry @code{::} (separatore spazio-dei-nomi)
+@cindex nomi @subentry di componente (in uno spazio-dei-nomi)
+@cindex componente @subentry spazio-dei-nomi @subentry nome del
Un @dfn{nome qualificato} @`e un identificativo composto
dal nome di uno spazio-dei-nomi, da un separatore di spazio-dei-nomi
(i due caratteri @code{::}), e dal nome di un @dfn{componente}.
@@ -33619,7 +33768,7 @@ operatore. Non @`e consentito inserire degli spazi di
separazione fra il
nome dello spazio-dei-nomi, la notazione @code{::}, e il nome del componente.
@end quotation
-@cindex nome qualificato, uso del
+@cindex nomi @subentry qualificati (in uno spazio-dei-nomi)
@`E necessario usare nomi qualificati, in uno spazio-dei-nomi, per accedere
a variabili e funzioni in un altro spazio-dei-nomi. Ci@`o @`e particolarmente
importante quando si usano nomi di variabile come indici del vettore
@@ -33630,15 +33779,15 @@ e quando si effettuano chiamate di funzione indirette
@node Spazio-dei-nomi di default
@section Lo spazio-dei-nomi di default
-@cindex spazio-dei-nomi, default
-@cindex spazio-dei-nomi, @code{awk}
-@cindex @code{awk}, spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry default
+@cindex spazio-dei-nomi @subentry @code{awk}
+@cindex @code{awk} @subentry spazio-dei-nomi
Lo spazio-dei-nomi di default, ovviamente, @`e @code{awk}.
Tutte le variabili predefinite di @command{awk} e di @command{gawk}
sono in questo spazio-dei-nomi, e quindi hanno nomi qualificati come
@code{awk::ARGC}, @code{awk::NF}, e cos@`{@dotless{i}} via.
-@cindex nomi in maiuscolo, spazio-dei-nomi dei
+@cindex nomi @subentry scritti in maiuscolo @subentry sempre nello
spazio-dei-nomi @code{awk}
Inoltre, anche se si sta utilizzando uno spazio-dei-nomi differente
nel file sorgente correntemente in uso
(@pxref{Cambiare lo spazio-dei-nomi}), @command{gawk}
@@ -33651,9 +33800,12 @@ Ci@`o rende anche pi@`u scorrevole il codice stesso.
@node Cambiare lo spazio-dei-nomi
@section Come cambiare lo spazio-dei-nomi
-@cindex spazio-dei-nomi, cambiare lo
-@cindex @code{@@namespace}, direttiva
-@cindex direttiva @code{@@namespace}
+@cindex spazio-dei-nomi @subentry cambiare lo
+@cindex cambiare @subentry lo spazio-dei-nomi
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@namespace} (direttiva)
+@cindex direttiva @subentry @code{@@namespace}
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva)
Per impostare lo spazio-dei-nomi corrente, si usi una direttiva
@code{@@namespace}
al livello principale del programma interessato:
@@ -33682,8 +33834,8 @@ dell'esecuzione del programma.
Ci@`o va compreso e messo in conto in anticipo.
@end quotation
-@cindex spazio-dei-nomi, implicito
-@cindex implicito, spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry implicito
+@cindex implicito @subentry spazio-dei-nomi
Ogni file sorgente designato dalle opzioni
@option{-i} e @option{-f} inizia con una direttiva implicita
@samp{@@namespace "awk"}. Analogamente, ogni parte di codice
@@ -33691,8 +33843,10 @@ immesso nella riga di comando, usando l'opzione
@option{-e}
ha la stessa implicita direttiva iniziale
(@pxref{Opzioni}).
-@cindex spazio-dei-nomi corrente, cambiare e ripristinare
-@cindex corrente, spazio-dei-nomi, cambiare e ripristinare
+@cindex spazio-dei-nomi @subentry corrente @subentry cambiare e ripristinare
+@cindex cambiare @subentry lo spazio-dei-nomi corrente
+@cindex ripristinare @subentry spazio-dei-nomi corrente
+@cindex corrente @subentry spazio-dei-nomi @subentry cambiare e ripristinare
I file inclusi con la direttiva @code{@@include} (@pxref{Includere file})
``cambiano'' (@dfn{push}) e ``ripristinano'' (@dfn{pop})
lo spazio-dei-nomi corrente. Ossia, ogni @code{@@include} salva
@@ -33703,20 +33857,25 @@ Quando @command{gawk} termina di elaborare il file
incluso,
lo spazio-dei-nomi salvato @`e ripristinato e l'elaborazione prosegue
da dove era stata sospesa nel file originale.
-@cindex @code{@@namespace}, non riguarda @code{BEGIN}@comma{}
@code{BEGINFILE}, @code{END}, ed @code{ENDFILE}
-@cindex @code{BEGIN}, regola, ordine di esecuzione non alterato da
@code{@@namespace}
-@cindex @code{BEGINFILE}, regola, ordine di esecuzione non alterato da
@code{@@namespace}
-@cindex @code{END}, regola, ordine di esecuzione non alterato da
@code{@@namespace}
-@cindex @code{ENDFILE}, regola, ordine di esecuzione non alterato da
@code{@@namespace}
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva)
@subentry non riguarda @code{BEGIN}, @code{BEGINFILE}, @code{END}, ed
@code{ENDFILE}
+@cindex chiocciola (@code{@@}) @subentry @code{@@namespace} (direttiva)
@subentry non riguarda @code{BEGIN}, @code{BEGINFILE}, @code{END}, ed
@code{ENDFILE}
+@cindex @code{BEGIN} (regola) @subentry ordine di esecuzione non alterato da
@code{@@namespace}
+@cindex @code{BEGINFILE} (regola) @subentry ordine di esecuzione non alterato
da @code{@@namespace}
+@cindex @code{END} (regola) @subentry ordine di esecuzione non alterato da
@code{@@namespace}
+@cindex @code{ENDFILE} (regola) @subentry ordine di esecuzione non alterato da
@code{@@namespace}
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@namespace} (direttiva)
L'uso di @code{@@namespace} non ha influenza sull'ordine di esecuzione delle
regole @code{BEGIN}, @code{BEGINFILE}, @code{END}, e @code{ENDFILE}.
@node Regole per i nomi
@section Regole per assegnare nomi a uno spazio-dei-nomi e ai suoi componenti
-@cindex nomi, regole per assegnare, agli spazi-dei-nomi e ai loro componenti
-@cindex spazio-dei-nomi, nomi, regole per assegnare
-@cindex componenti di uno spazio-dei-nomi, regole per assegnare i nomi
+@cindex nomi @subentry regole per assegnarli @subentry agli spazi-dei-nomi e
ai loro componenti
+@cindex spazio-dei-nomi @subentry regole per assegnare i nomi
+@c not "component names" to merge with other index entry
+@cindex spazio-dei-nomi @subentry componenti @subentry regole per assegnare i
nomi
+@cindex componente @subentry spazio-dei-nomi @subentry regole per assegnare i
nomi
Alcune regole vanno seguite nell'attribuire i nomi a uno spazio-dei-nomi
e alle sue componenti.
@@ -33791,9 +33950,9 @@ nomi molto utile.
@node Gestione interna dei nomi
@section Come i nomi sono gestiti internamente
-@cindex nomi, gestione dei
-@cindex @code{awk} spazio-dei-nomi, memoria che contiene i nomi identificativi
-@cindex @code{awk} spazio-dei-nomi, utilizzo per chiamate indirette di funzione
+@cindex nomi @subentry gestione (in uno spazio-dei-nomi)
+@cindex @code{awk} @subentry spazio-dei-nomi @subentry memoria che contiene i
nomi identificativi
+@cindex @code{awk} @subentry spazio-dei-nomi @subentry utilizzo per chiamate
indirette di funzione
Per compatibilit@`a all'indietro, tutti gli identificatvi nello spazio-dei-nomi
@code{awk} sono memorizzati internamente come identificativi senza qualifica
(ossia, senza il prefisso @samp{awk::}). Ci@`o ha importanza principalmente
@@ -33826,7 +33985,7 @@ function calcola() @ii{Il nome vero di questa
funzione @`e} rapporto::com
@node Esempio di spazio-dei-nomi
@section Esempio di codice che usa uno spazio-dei-nomi
-@cindex spazio-dei-nomi, esempio di codice
+@cindex spazio-dei-nomi @subentry esempio di codice
L'esempio seguente @`e una versione riveduta dell'insieme di
script sviluppati in @ref{Funzioni Passwd};
l@`{@dotless{i}} si pu@`o trovare la descrizione del funzionamento del codice.
@@ -33961,10 +34120,10 @@ Questo
@value{SECTION} tratta brevemente di come la funzionalit@`a spazio-dei-nomi
interagisce con altre importanti funzionalit@`a di @command{gawk}.
-@cindex spazio-dei-nomi, interazione con la profilazione
-@cindex spazio-dei-nomi, interazione con la stampa elegante
-@cindex profilazione, interazione con spazio-dei-nomi
-@cindex stampa elegante, interazione con spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry interazione con la profilazione
+@cindex spazio-dei-nomi @subentry interazione con la stampa elegante
+@cindex profilazione @subentry interazione con spazio-dei-nomi
+@cindex stampa elegante @subentry interazione con spazio-dei-nomi
La profilazione e la stampa elegante (@pxref{Profilare}) sono state
migliorate per trattare gli spazi-dei-nomi e le regole per assegnare nomi in
uno spazio-dei-nomi @ref{Regole per i nomi}.
@@ -33975,17 +34134,17 @@ In questo modo i nomi dei componenti sono degli
identificativi semplici, senza dover usare dappertutto degli
identificativi qualificati.
-@cindex spazio-dei-nomi, interazioen con il debugger
-@cindex debugger, interazione con lo spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry interazione con il debugger
+@cindex debugger @subentry interazione con lo spazio-dei-nomi
L'interazione con il debugger (@pxref{Debugging}) non @`e cambiata
(almeno fino al momento in cui questo libro @`e stato scritto).
Alcuni campi interni sono stati modificati per tener conto
degli spazi-dei-nomi, e il comando @code{dump} del debugger
@`e stato modificato per lo stesso motivo.
-@cindex spazio-dei-nomi, interazione con l'estensione API
-@cindex estensione API, interazione con lo spazio-dei-nomi
-@cindex API, estensione, interazione con lo spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry interazione con l'estensione API
+@cindex estensione API @subentry interazione con lo spazio-dei-nomi
+@cindex API (estensione) @subentry interazione con lo spazio-dei-nomi
L'estensione API (@pxref{Estensioni dinamiche}) ha sempre previsto
di avere funzioni in uno spazio-dei-nomi differente, sebbene ci@`o
non fosse stato ancora implementato. Tuttavia, le routine di
@@ -34030,7 +34189,7 @@ Questo vale soprattutto per la profilazione / stampa
elegante
(@pxref{Profilare}) e per le funzionalit@`a relative alle
estensioni (@pxref{Estensioni dinamiche}).
-@cindex spazio-dei-nomi, compatibilit@`a all'indietro
+@cindex spazio-dei-nomi @subentry compatibilit@`a all'indietro
@item
Complessivamente, la funzionalit@`a spazio-dei-nomi @`e stata progettata e
implementata avendo come preoccupazione quella di mantenere la compatibilit@`a
@@ -34041,10 +34200,10 @@ su una versione di @command{gawk} che abbia la
funzionalit@`a spazio-dei-nomi.
@node Calcolo con precisione arbitraria
@chapter Calcolo con precisione arbitraria con @command{gawk}
-@cindex precisione arbitraria
-@cindex precisione multipla
-@cindex precisione infinita
-@cindex virgola mobile, numeri in@comma{} precisione arbitraria
+@cindex precisione @subentry arbitraria
+@cindex precisione @subentry multipla
+@cindex precisione @subentry infinita
+@cindex virgola mobile @subentry numeri in @subentry precisione arbitraria
In questo @value{CHAPTER} si introducono alcuni concetti base su come i
computer
@@ -34121,9 +34280,10 @@ parte frazionaria, come 1, 42, o @minus{}17.
Il vantaggio dei numeri interi @`e che essi rappresentano dei valori in maniera
esatta. Lo svantaggio @`e che i numeri rappresentabili sono limitati.
-@cindex senza segno, interi
-@cindex segno, interi senza
-@cindex interi senza segno
+@cindex senza segno @subentry interi
+@cindex segno @subentry interi senza
+@cindex interi @subentry senza segno
+@cindex numeri @subentry interi @subentry senza segno
Nei calcolatori, i valori interi sono di due tipi: @dfn{con segno} e
@dfn{senza segno}. I valori con segno possono essere negativi o positivi,
mentre i valori senza segno sono sempre maggiori o uguali a zero.
@@ -34132,8 +34292,8 @@ Nei sistemi informatici, il calcolo con valori interi
@`e esatto, ma il possibil
campo di variazione dei valori @`e limitato. L'elaborazione con numeri interi
@`e
pi@`u veloce di quella con numeri in virgola mobile.
-@cindex virgola mobile, numeri in
-@cindex numeri in virgola mobile
+@cindex virgola mobile @subentry numeri in
+@cindex numeri @subentry in virgola mobile
@item La matematica coi numeri in virgola mobile
I numeri in virgola mobile rappresentano quelli che a scuola sono chiamati
numeri ``reali'' (cio@`e, quelli che hanno una parte frazionaria, come
@@ -34147,15 +34307,15 @@ nell'hardware dell'elaboratore, entro un intervallo
di valori limitato.
Ci sono inoltre librerie di programmi che consentono calcoli, usando numeri in
virgola mobile, di precisione arbitraria.
-@cindex virgola mobile, numeri in@comma{} precisione singola
-@cindex virgola mobile, numeri in@comma{} precisione doppia
-@cindex virgola mobile, numeri in@comma{} precisione arbitraria
-@cindex precisione singola
-@cindex precisione doppia
-@cindex precisione arbitraria
-@cindex singola, precisione
-@cindex doppia, precisione
-@cindex arbitraria, precisione
+@cindex virgola mobile @subentry numeri in @subentry precisione singola
+@cindex virgola mobile @subentry numeri in @subentry precisione doppia
+@cindex virgola mobile @subentry numeri in @subentry precisione arbitraria
+@cindex precisione @subentry singola
+@cindex precisione @subentry doppia
+@cindex precisione @subentry arbitraria
+@cindex singola @subentry precisione
+@cindex doppia precisione
+@cindex arbitraria @subentry precisione
POSIX @command{awk} usa numeri in virgola mobile a @dfn{doppia precisione},
che possono gestire pi@`u cifre rispetto ai numeri in virgola mobile a
@dfn{singola precisione}. @command{gawk} ha inoltre funzionalit@`a, descritte
@@ -34730,8 +34890,8 @@ $ @kbd{gawk -M 'BEGIN @{ PREC = 113; printf("%0.25f\n",
1/10) @}'}
@node Impostare modo di arrotondare
@subsection Impostare la modalit@`a di arrotondamento
-@cindex @code{ROUNDMODE}, variable
-@cindex variabile @code{ROUNDMODE}
+@cindex @code{ROUNDMODE} (variabile)
+@cindex variabile @subentry @code{ROUNDMODE}
La variabile @code{ROUNDMODE} permette di controllare a livello di programma
la modalit@`a di arrotondamento.
La corrispondenza tra @code{ROUNDMODE} e le modalit@`a di arrotondamento IEEE
@@ -34859,9 +35019,9 @@ cambiando la modalit@`a di arrotondamento.
@node Interi a precisione arbitraria
@section Aritmetica dei numeri interi a precisione arbitraria con
@command{gawk}
-@cindex numeri interi a precisione arbitraria
-@cindex interi a precisione arbitraria
-@cindex precisione arbitraria, interi a
+@cindex numeri @subentry interi @subentry a precisione arbitraria
+@cindex interi @subentry a precisione arbitraria
+@cindex precisione @subentry arbitraria @subentry interi a
Quando viene specificata l'opzione @option{-M},
@command{gawk} esegue tutti i calcoli sui numeri interi usando gli interi a
@@ -34918,7 +35078,7 @@ Il risultato di un'operazione aritmetica tra un intero
e un valore in virgola
mobile @`e un valore in virgola mobile con precisione uguale alla precisione di
lavoro. Il seguente programma calcola l'ottavo termine nella successione di
Sylvester@footnote{Weisstein, Eric W.
-@cite{Sylvester's Sequence}. From MathWorld---A Wolfram Web Resource
+@cite{Sylvester's Sequence}. From MathWorld --- A Wolfram Web Resource
@w{(@url{http://mathworld.wolfram.com/SylvestersSequence.html}).}}
usando una ricorrenza:
@@ -35102,8 +35262,8 @@ Si veda
@node Controllare disponibilit@`a MPFR
@section Come controllare se MPFR @`e disponibile
-@cindex MPFR, controllare se disponibile
-@cindex controllare disponibilit@`a MPFR
+@cindex MPFR @subentry controllare disponibilit@`a
+@cindex controllo @subentry disponibilit@`a MPFR
Occasionalmente, potrebbe essere utile controllare se @command{gawk} sia stato
chiamato specificando l'opzione @option{-M}, che consente di effettuare
calcoli aritmetici di precisione arbitraria.
@@ -35266,6 +35426,7 @@ $ @kbd{echo 0xDeadBeef | gawk '@{ print $1 + 0 @}'}
speciali. Cos@`{@dotless{i}}, @samp{+nan} e @samp{+NaN} sono la stessa cosa.
@end itemize
+@cindex POSIX @subentry modalit@`a
Oltre a gestire l'input, @command{gawk} deve anche stampare valori
``corretti'' in output, quando un valore sia NaN o infinito.
A partire dalla @value{PVERSION} 4.2.2, per tali valori
@@ -35352,8 +35513,8 @@ necessaria.
@node Estensioni dinamiche
@chapter Scrivere estensioni per @command{gawk}
-@cindex estensioni caricate dinamicamente
-@cindex dinamiche, estensioni
+@cindex estensioni @subentry caricare @subentry dinamicamente
+@cindex dinamiche @subentry estensioni
@`E possibile aggiungere nuove funzioni, scritte in C o C++, a @command{gawk}
usando librerie caricate dinamicamente. Questa funzionalit@`a @`e disponibile
@@ -35587,8 +35748,8 @@ funzionalit@`a utilizzate nell'estensione.
(Discrepanze tra le versioni
@node Descrizione dell'estensione API
@section Una descrizione completa dell'API
-@cindex estensione, API
-@cindex API, estensione
+@cindex estensione API
+@cindex API (estensione)
Il codice sorgente scritto in C o C++ per un'estensione deve includere il
file di intestazione
@@ -35831,7 +35992,7 @@ Questo
@node Tipi di dati generali
@subsection I tipi di dati di impiego generale
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
@cindex Ramey, Chet
@quotation
@i{Ho un vero rapporto di amore/odio con le @dfn{unioni}.}
@@ -36093,8 +36254,8 @@ di @command{gawk} e riduce il tempo richiesto per
creare il valore.
@node Funzioni di allocazione memoria
@subsection Funzioni per allocare memoria e macro di servizio
@cindex allocare memoria per estensioni
-@cindex estensioni, allocare memoria per
-@cindex memoria, allocare per estensioni
+@cindex estensioni @subentry allocare memoria per
+@cindex memoria @subentry allocare per estensioni
L'API fornisce alcune funzioni per effettuare @dfn{allocazioni di memoria}
che possono essere passate a @command{gawk}, e anche un certo numero di
@@ -36311,7 +36472,7 @@ dati ottenuti in precedenza tramite una chiamata a
@node Funzioni di registrazione
@subsection Funzioni di registrazione
@cindex registrazione di estensione
-@cindex estensione, registrazione di
+@cindex estensioni @subentry registrazione di
Questa @value{SECTION} descrive le funzioni dell'API per
registrare parti di un'estensione con @command{gawk}.
@@ -36515,9 +36676,9 @@ registrate, quando viene invocato specificando
l'opzione @option{--version}.
@node Analizzatori di input
@subsubsection Analizzatori di input personalizzati
-@cindex personalizzato, analizzatore di input
+@cindex personalizzato @subentry analizzatore di input
@cindex analizzatore di input personalizzato
-@cindex input, analizzatore di, personalizzato
+@cindex input @subentry analizzatore di @subentry personalizzato
Per default, @command{gawk} legge file di testo come input. Il valore della
variabile @code{RS} @`e usato per determinare la fine di un record, e subito
@@ -36857,12 +37018,12 @@ Per un esempio si pu@`o vedere l'estensione di
esempio @code{readdir_test}.
@node Processori di output
@subsubsection Registrare un processore di output
-@cindex personalizzato, processore di output
-@cindex processore di output personalizzato
-@cindex output, processore di, personalizzato
+@cindex personalizzato @subentry processore di output
+@cindex processore di output @subentry personalizzato
+@cindex output @subentry processore di @subentry personalizzato
@cindex processore di output
-@cindex output, processore di
+@cindex output @subentry processore di
Un @dfn{processore di output} @`e l'immagine riflessa di un
analizzatore di input.
Consente a un'estensione di prendere il controllo dell'output
@@ -36986,9 +37147,9 @@ Registra il processore di output puntato da
@code{output_wrapper} con
@node Processori bidirezionali
@subsubsection Registrare un processore bidirezionale
-@cindex personalizzato, processore bidirezionale
+@cindex personalizzato @subentry processore bidirezionale
@cindex processore bidirezionale personalizzato
-@cindex bidirezionale, processore personalizzato
+@cindex bidirezionale @subentry processore personalizzato
Un @dfn{processore bidirezionale} combina un analizzatore di input e
un processore di output per un I/O
@@ -37049,9 +37210,9 @@ Registra il processore bidirezionale puntato da
@code{two_way_processor} con
@node Stampare messaggi
@subsection Stampare messaggi dalle estensioni
-@cindex stampare messaggi dalle estensioni
-@cindex messaggi, stampare dalle estensioni
-@cindex estensioni, stampare messaggi dalle
+@cindex stampare @subentry messaggi dalle estensioni
+@cindex messaggi @subentry stampare dalle estensioni
+@cindex estensioni @subentry stampare messaggi dalle
@`E possibile stampare diversi tipi di messaggi di avvertimento da
un'estensione, come qui spiegato. Si noti che, per queste funzioni,
@@ -37335,8 +37496,8 @@ per ulteriori informazioni riguardo alla creazione di
vettori.
@node Accedere alla tabella simboli
@subsection Accedere alla Tabella dei simboli
@cindex accedere alle variabili globali dalle estensioni
-@cindex variabili globali, accesso dalle estensioni
-@cindex estensioni, accesso alle variabili globali
+@cindex variabili @subentry globali @subentry accesso dalle estensioni
+@cindex estensioni @subentry accesso alle variabili globali
Due insiemi di routine permettono di accedere alle variabili globali,
e un insieme consente di creare e rilasciare dei valori nascosti.
@@ -37661,8 +37822,8 @@ la funzione @code{release_value()}.
@node Manipolazione di vettori
@subsection Manipolazione di vettori
-@cindex vettori, manipolazione nelle estensioni
-@cindex estensioni, manipolazione di vettori nelle
+@cindex vettori @subentry manipolazione nelle estensioni
+@cindex estensioni @subentry manipolazione di vettori nelle
La struttura di dati primaria@footnote{D'accordo, l'unica struttura di dati.}
in @command{awk} @`e il vettore associativo
@@ -38383,9 +38544,9 @@ insieme contiene informazioni su come @command{gawk}
@`e stato invocato.
@node Versione dell'estensione
@subsubsection Costanti e variabili della versione dell'API
-@cindex API, versione dell'estensione
-@cindex versione dell'estensione API @command{gawk}
-@cindex estensione @command{gawk}, versione API
+@cindex API @subentry versione dell'estensione
+@cindex versione @subentry dell'estensione API @command{gawk}
+@cindex estensione API @subentry @command{gawk}, versione API
L'API fornisce sia un numero di versione ``principale'' che uno ``secondario''.
Le versioni dell'API sono disponibili al momento della compilazione, come
@@ -38503,9 +38664,9 @@ chiama @code{check_mpfr_version()}.
@node Variabili informative di estens. API
@subsubsection Variabili informative
-@cindex API, variabili informative dell'estensione
-@cindex variabili informative dell'API
-@cindex estensione API, variabili informative
+@cindex API @subentry variabili informative dell'estensione
+@cindex variabili @subentry informative dell'API
+@cindex estensione API @subentry variabili informative
L'API fornisce accesso a parecchie variabili che descrivono
se le opzioni della riga di comando corrispondenti sono state specificate
@@ -38725,10 +38886,10 @@ C'@`e una nuova API, @code{get_file()}
@node Trovare le estensioni
@section Come @command{gawk} trova le estensioni compilate
-@cindex estensioni, percorso di ricerca per
-@cindex estensioni, come trovarle
-@cindex trovare le estensioni
-@cindex percorso di ricerca per estensioni
+@cindex estensioni @subentry percorso di ricerca per
+@cindex estensioni @subentry come trovarle
+@cindex trovare @subentry estensioni
+@cindex percorso di ricerca @subentry per estensioni
Le estensioni compilate vanno installate in una directory dove
@command{gawk} possa trovarle. Se @command{gawk} @`e configurato e
@@ -38740,8 +38901,8 @@ ricerca di estensioni compilate.
@node Esempio di estensione
@section Esempio: alcune funzioni per i file
-@cindex estensione, esempio
-@cindex esempio di estensione
+@cindex estensione @subentry esempio
+@cindex esempio @subentry di estensione
@quotation
@i{In qualunque posto vai, l@`a tu sei.}
@@ -38978,8 +39139,8 @@ static const char *ext_version = "filefuncs extension:
version 1.0";
int plugin_is_GPL_compatible;
@end example
-@cindex programmazione, convenzioni di, estensioni @command{gawk}
-@cindex estensioni @command{gawk}, convenzioni di programmazione
+@cindex programmazione @subentry convenzioni di @subentry estensioni
@command{gawk}
+@cindex estensioni @subentry @command{gawk}, convenzioni di programmazione
Per convenzione, per una funzione @command{awk} di nome @code{pippo()},
la funzione C che la implementa @`e chiamata @code{do_pippo()}. La funzione
dovrebbe avere due argomenti. Il primo @`e un numero @code{int}, chiamato
@@ -39338,9 +39499,9 @@ Abbiamo finito!
@node Usare operazioni interne file
@subsection Integrare le estensioni
-@cindex @command{gawk}, aggiungere funzionalit@`a a
-@cindex funzionalit@`a, aggiungere a @command{gawk}
-@cindex aggiungere funzionalit@`a a @command{gawk}
+@cindex @command{gawk} @subentry aggiungere funzionalit@`a a
+@cindex funzionalit@`a @subentry aggiungere a @command{gawk}
+@cindex aggiungere @subentry funzionalit@`a a @command{gawk}
Dopo aver scritto il codice, dev'essere possibile aggiungerlo in fase
di esecuzione all'interprete @command{gawk}. Per prima cosa, il codice
va compilato. Supponendo che le funzioni siano in
@@ -39425,7 +39586,7 @@ $ @kbd{AWKLIBPATH=$PWD gawk -f testff.awk}
@node Esempi di estensione
@section Le estensioni di esempio incluse nella distribuzione @command{gawk}
-@cindex estensioni distribuite con @command{gawk}
+@cindex estensioni @subentry distribuite con @command{gawk}
Questa @value{SECTION} fornisce una breve panoramica degli esempi di
estensione inclusi nella distribuzione di @command{gawk}. Alcune di esse
@@ -39465,16 +39626,16 @@ L'uso @`e il seguente:
@item @code{@@load "filefuncs"}
Questo @`e il modo per caricare l'estensione.
-@cindex @code{chdir()}, estensione
-@cindex estensione @code{chdir()}
+@cindex @code{chdir()} (estensione)
+@cindex estensione @subentry @code{chdir()}
@item @code{risultato = chdir("/qualche/directory")}
La funzione @code{chdir()} invoca a sua volta la chiamata di sistema
@code{chdir()} per cambiare la directory corrente. Restituisce zero
se tutto va bene o un valore minore di zero in caso di errore.
In quest'ultimo caso, viene aggiornata la variabile @code{ERRNO}.
-@cindex @code{stat()}, estensione
-@cindex estensione @code{stat()}
+@cindex @code{stat()} (estensione)
+@cindex estensione @subentry @code{stat()}
@item @code{risultato = stat("/qualche/percorso", statdata} [@code{,
follow}]@code{)}
La funzione @code{stat()} invoca a sua volta la chiamata di sistema
@code{stat()}.
@@ -39512,7 +39673,7 @@ come quello stampato dal comando
@command{ls} (per esempio, @code{"-rwxr-xr-x"}) @tab Tutti
@item @code{"linkval"} @tab Il valore del collegamento simbolico @tab
Collegamenti simbolici
-@item @code{"type"} @tab Il tipo del file in formato stringa---pu@`o essere
+@item @code{"type"} @tab Il tipo del file in formato stringa --- pu@`o essere
@code{"file"},
@code{"blockdev"},
@code{"chardev"},
@@ -39526,8 +39687,8 @@ o
(non tutti i sistemi supportano tutti i tipi file) @tab Tutti
@end multitable
-@cindex @code{fts()}, estensione
-@cindex estensione @code{fts()}
+@cindex @code{fts()} (estensione)
+@cindex estensione @subentry @code{fts()}
@item @code{flags = or(FTS_PHYSICAL, ...)}
@itemx @code{risultato = fts(pathlist, flags, filedata)}
Percorre gli alberi di file elencati in @code{pathlist} e riempie il vettore
@@ -39681,8 +39842,8 @@ libreria C @code{fnmatch()}. Si usa cos@`{@dotless{i}}:
@item @@load "fnmatch"
@`E questo il modo per caricare l'estensione.
-@cindex @code{fnmatch()}, estensione
-@cindex estensione @code{fnmatch()}
+@cindex @code{fnmatch()} (estensione)
+@cindex estensione @subentry @code{fnmatch()}
@item risultato = fnmatch(pattern, stringa, flags)
Il valore restituito @`e zero se tutto va bene, oppure @code{FNM_NOMATCH}
se la funzione non ha trovato alcuna corrispondenza, o
@@ -39738,8 +39899,8 @@ L'estensione @code{fork} mette a disposizione tre
funzioni, come segue:
@item @@load "fork"
Questo @`e il modo per caricare l'estensione.
-@cindex @code{fork()}, estensione
-@cindex estensione @code{fork()}
+@cindex @code{fork()} (estensione)
+@cindex estensione @subentry @code{fork()}
@item pid = fork()
Questa funzione crea un nuovo processo. Il valore restituito @`e zero nel
processo ``figlio'' e il numero che identifica il nuovo processo
@@ -39748,15 +39909,15 @@ in caso di errore. In quest'ultimo caso, @code{ERRNO}
indica il problema.
Nel processo figlio, gli elementi @code{PROCINFO["pid"]} e
@code{PROCINFO["ppid"]} vengono aggiornati per riflettere i valori corretti.
-@cindex @code{waitpid()}, estensione
-@cindex estensione @code{waitpid()}
+@cindex @code{waitpid()} (estensione)
+@cindex estensione @subentry @code{waitpid()}
@item ret = waitpid(pid)
Questa funzione ha un unico argomento numerico, l'identificativo del processo
di cui aspettare l'esito. Il codice di ritorno @`e quello restituito dalla
chiamata di sistema @code{waitpid()}.
-@cindex @code{wait()}, estensione
-@cindex estensione @code{wait()}
+@cindex @code{wait()} (estensione)
+@cindex estensione @subentry @code{wait()}
@item ret = wait()
Questa funzione attende che il primo processo ``figlio'' termini.
Il valore restituito @`e quello della chiamata di sistema @code{wait()}.
@@ -39778,8 +39939,8 @@ else
@node Esempio di estensione Inplace
@subsection Consentire la modifica in loco dei file
-@cindex @code{inplace}, estensione
-@cindex estensione @code{inplace()}
+@cindex @code{inplace} (estensione)
+@cindex estensione @subentry @code{inplace()}
L'estensione @code{inplace} svolge un lavoro simile a quello
dell'opzione @option{-i} nel programma di utilit@`a GNU @command{sed},
che svolge delle funzioni di modifica ``al volo'' su ogni file in input.
@@ -39936,13 +40097,13 @@ L'estensione @code{ordchr} aggiunge due funzioni, di
nome
@item @@load "ordchr"
Questo @`e il modo per caricare l'estensione.
-@cindex @code{ord()}, estensione
-@cindex estensione @code{ord()}
+@cindex @code{ord()} (estensione)
+@cindex estensione @subentry @code{ord()}
@item numero = ord(stringa)
Restituisce il valore numerico del primo carattere in @code{stringa}.
-@cindex @code{Chr}, estensione
-@cindex estensione @code{chr()}
+@cindex @code{Chr} (estensione)
+@cindex estensione @subentry @code{chr()}
@item char = chr(number)
Restituisce una stringa il cui primo carattere @`e quello rappresentato
da @code{number}.
@@ -39965,8 +40126,8 @@ L'estensione @code{readdir} aggiunge un analizzatore di
input
per esaminare directory.
L'uso @`e il seguente:
-@cindex @code{readdir}, estensione
-@cindex estensione @code{readdir()}
+@cindex @code{readdir} (estensione)
+@cindex estensione @subentry @code{readdir()}
@example
@@load "readdir"
@end example
@@ -40027,8 +40188,8 @@ come @`e possibile scrivere un processore di output,
anche se pu@`o essere
a prima vista vagamente divertente.
Ecco un esempio:
-@cindex @code{revoutput}, estensione
-@cindex estensione @code{revoutput()}
+@cindex @code{revoutput} (estensione)
+@cindex estensione @subentry @code{revoutput()}
@example
@@load "revoutput"
@@ -40050,8 +40211,8 @@ poi rileggere dal programma @command{awk}. Il motivo
per cui @`e stata scritta
sembrare un programma vagamente divertente.
Il seguente esempio mostra come usarlo:
-@cindex @code{revtwoway}, estensione
-@cindex estensione @code{revtwoway()}
+@cindex @code{revtwoway} (estensione)
+@cindex estensione @subentry @code{revtwoway()}
@example
@@load "revtwoway"
@@ -40083,16 +40244,16 @@ di nome @code{writea()} e @code{reada()}, come segue:
@item @@load "rwarray"
Questo @`e il modo per caricare l'estensione.
-@cindex @code{writea()}, estensione
-@cindex estensione @code{writea()}
+@cindex @code{writea()} (estensione)
+@cindex estensione @subentry @code{writea()}
@item ret = writea(file, vettore)
Questa funzione ha come argomento una stringa, che @`e il nome del file
sul quale scaricare il vettore, e il vettore stesso @`e il secondo argomento.
@code{writea()} @`e in grado di gestire vettori di vettori. Restituisce il
valore uno se completa il lavoro o zero se non va a buon fine.
-@cindex @code{reada()}, estensione
-@cindex estensione @code{reada()}
+@cindex @code{reada()} (estensione)
+@cindex estensione @subentry @code{reada()}
@item ret = reada(file, vettore)
@code{reada()} @`e la funzione inversa di @code{writea()};
legge il file il cui nome @`e fornito come primo argomento, riempiendo il
@@ -40143,9 +40304,9 @@ di nome @code{readfile()}, e un analizzatore di input:
@item @@load "readfile"
Questo @`e il modo per caricare l'estensione.
-@cindex @code{readfile()}, estensione
-@cindex estensione @code{readfile()}
-@item risultato = readfile("/qualche/persorso")
+@cindex @code{readfile()} (estensione)
+@cindex estensione @subentry @code{readfile()}
+@item risultato = readfile("/qualche/percorso")
L'argomento @`e il nome del file da leggere. Il valore restituito @`e una
stringa contenente l'intero contenuto del file richiesto. In caso di errore,
la funzione restituisce la stringa vuota e imposta @code{ERRNO}.
@@ -40180,8 +40341,8 @@ L'estensione @code{time} aggiunge due funzioni, di nome
@item @@load "time"
Questo @`e il modo per caricare l'estensione.
-@cindex @code{gettimeofday()}, estensione
-@cindex estensione @code{gettimeofday()}
+@cindex @code{gettimeofday()} (estensione)
+@cindex estensione @subentry @code{gettimeofday()}
@item ora_corrente = gettimeofday()
Restituisce il numero di secondi trascorsi dalle ore 00:00 del giorno
01/01/1970 UTC come valore in virgola mobile.
@@ -40195,8 +40356,8 @@ nella piattaforma in uso, questo @`e il valore
restituito. In caso contrario,
se si sta lavorando con MS-Windows, la chiamata di sistema @`e fatta a
@code{GetSystemTimeAsFileTime()}.
-@cindex @code{sleep()}, estensione
-@cindex estensione @code{sleep()}
+@cindex @code{sleep()} (estensione)
+@cindex estensione @subentry @code{sleep()}
@item risultato = sleep(@var{secondi})
Il programma @command{gawk} resta inattivo (dorme) per i @var{secondi}
specificati. Se @var{secondi} ha un valore negativo,
@@ -40212,8 +40373,8 @@ ottenere il tempo di attesa richiesto.
@node Esempio di estensione API Test
@subsection Test per l'API
-@cindex @code{testext}, estensione
-@cindex estensione @code{testext()}
+@cindex @code{testext} (estensione)
+@cindex estensione @subentry @code{testext()}
L'estensione @code{testext} controlla la funzionalit@`a di
parti dell'estensione API che non sono utilizzate negli altri esempi.
@@ -40225,12 +40386,10 @@ sorgente per maggiori informazioni.
@node gawkextlib
@section Il progetto @code{gawkextlib}
-@cindex @code{gawkextlib}, estensioni
-@cindex estensioni, @code{gawkextlib}
-@cindex estensioni, dove trovarle
+@cindex estensioni @subentry caricabili @subentry Progetto @code{gawkextlib}
-@cindex @code{gawkextlib}, progetto
-@cindex progetto @code{gawkextlib}
+@cindex @code{gawkextlib} (Progetto)
+@cindex progetto @subentry @code{gawkextlib}
Il progetto @uref{https://sourceforge.net/projects/gawkextlib/,
@code{gawkextlib}}
fornisce varie estensioni per @command{gawk}, compresa una per
l'elaborazione dei file XML. Questa @`e un'evoluzione del progetto noto come
@@ -40264,8 +40423,8 @@ Estensione analizzatore XML, usando la libreria di
analisi XML
@uref{https://expat.sourceforge.net, Expat}
@end itemize
-@cindex @command{git}, programma di utilit@`a
-@cindex programma di utilit@`a @command{git}
+@cindex @command{git} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{git}
Si pu@`o scaricare il codice del progetto @code{gawkextlib}
usando il codice sorgente mantenuto tramite
@uref{https://git-scm.com, Git}.
@@ -40275,13 +40434,13 @@ Il comando per farlo @`e il seguente:
git clone git://git.code.sf.net/p/gawkextlib/code gawkextlib-code
@end example
-@cindex RapidJson, libreria per analizzare JSON
-@cindex JSON, RapidJson, libreria per analizzare
+@cindex RapidJson @subentry libreria per analizzare JSON
+@cindex JSON @subentry RapidJson @subentry libreria per analizzare
Occorre che sia installata la libreria di analisi JSON
per poter generare e usare l'estensione @code{json}.
-@cindex Expat, libreria per analizzare XML
-@cindex XML, Expat, libreria per analizzare
+@cindex Expat @subentry libreria per analizzare XML
+@cindex XML @subentry Expat @subentry libreria per analizzare
Per poter compilare e usare l'estensione XML, @`e necessario installare
la libreria di analisi XML @uref{https://expat.sourceforge.net, Expat}.
@@ -40592,8 +40751,8 @@ documentazione online}.
@node V7/SVR3.1
@appendixsec Differenze importanti tra V7 e System V Release 3.1
-@cindex @command{awk}, versioni di
-@cindex @command{awk}, versioni di, differenze tra V7 e SVR3.1
+@cindex @command{awk} @subentry versioni di
+@cindex @command{awk} @subentry versioni di @subentry differenze tra V7 e
SVR3.1
Il liguaggio @command{awk} si @`e evoluto considerevolmente tra Unix versione
7 (1978) e la nuova implementazione disponibile a partire da Unix System V
@@ -40683,7 +40842,7 @@ Vettori multidimensionali
@node SVR4
@appendixsec Differenze tra le versioni System V Release 3.1 e SVR4
-@cindex @command{awk}, versioni di, differenze tra SVR3.1 e SVR4
+@cindex @command{awk} @subentry versioni di @subentry differenze tra SVR3.1 e
SVR4
La versione per Unix System V Release 4 (1989) di @command{awk} ha aggiunto
queste funzionalit@`a (alcune delle quali introdotte da @command{gawk}):
@@ -40747,8 +40906,8 @@ effettuato tramite la riga di comando
@node POSIX
@appendixsec Differenze tra versione SVR4 e POSIX di @command{awk}
-@cindex @command{awk}, versioni di, differenze tra SVR4 e POSIX @command{awk}
-@cindex POSIX @command{awk}, differenze tra versioni @command{awk}
+@cindex @command{awk} @subentry versioni di @subentry differenze tra SVR4 e
POSIX @command{awk}
+@cindex POSIX @command{awk} @subentry differenze tra versioni @command{awk}
Lo standard POSIX Command Language and Utilities per @command{awk} (1992)
ha introdotto le seguenti modifiche al linguaggio:
@@ -40807,9 +40966,9 @@ Lo standard POSIX 2008 @`e reperibile online a:
@node BTL
@appendixsec Estensioni nell'@command{awk} di Brian Kernighan
-@cindex @command{awk}, versioni di, si veda anche Brian Kernighan,
@command{awk} di
-@cindex estensioni, Brian Kernighan @command{awk}
-@cindex Brian Kernighan, @command{awk} di, estensioni
+@cindex @command{awk} @subentry versioni di @seealso{Brian Kernighan,
@command{awk} di}
+@cindex estensioni @subentry Brian Kernighan @command{awk}
+@cindex Brian Kernighan @subentry @command{awk} di @subentry estensioni
@cindex Kernighan, Brian
Brian Kernighan
ha reso disponibile la sua versione nel suo sito.
@@ -40855,10 +41014,10 @@ disponibile nel suo @command{awk}.
@node POSIX/GNU
@appendixsec Estensioni di @command{gawk} non in POSIX @command{awk}
-@cindex modalit@`a compatibile di (@command{gawk}), estensioni nella
-@cindex estensioni nella modalit@`a compatibile di (@command{gawk})
-@cindex estensioni, in @command{gawk}, non in POSIX @command{awk}
-@cindex POSIX, estensioni @command{gawk} non incluse in
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry estensioni nella
+@cindex estensioni @subentry nella modalit@`a compatibile di (@command{gawk})
+@cindex estensioni @subentry in @command{gawk}, non in POSIX @command{awk}
+@cindex POSIX @subentry estensioni @command{gawk} non incluse in
L'implementazione GNU di @command{gawk} aggiunge molte funzionalit@`a.
Queste possono essere disabilitate completamente sia con l'opzione
@option{--traditional} che con l'opzione
@@ -41004,7 +41163,7 @@ per contenere eventuali sottoespressioni individuate
all'interno di una
(@pxref{Funzioni per stringhe})
@item
-Specificatori posizionali nei formati di @code{printf} per facilitare
+Specificatori di posizione nei formati di @code{printf} per facilitare
le traduzioni di messaggi
(@pxref{Ordinamento di printf})
@@ -41488,7 +41647,7 @@ di una @dfn{regexp}
(@pxref{Funzioni per stringhe}).
@item
-Specificatori posizionali nelle stringhe di formato di @code{printf} per
+Specificatori di posizione nelle stringhe di formato di @code{printf} per
facilitare la traduzione di messaggi
(@pxref{Ordinamento di printf}).
@@ -41526,7 +41685,7 @@ Le funzioni @code{and()}, @code{or()}, @code{xor()},
@code{compl()},
@end itemize
@item
-@cindex @code{next file} statement
+@cindex @code{next file} (istruzione obsoleta)
Il supporto per @samp{next file} scritto come due parole @`e stato rimosso
completamente
(@pxref{Istruzione nextfile}).
@@ -41758,12 +41917,14 @@ con un possibile miglioramento nei tempi di esecuzione
@end ifnottex
@item
+@cindex POSIX @subentry modalit@`a
In aderenza agli standard di codifica GNU, le estensioni dinamiche devono
definire un simbolo globale che indica che sono compatibili con la
licenza GPL
(@pxref{Licenza delle estensioni}).
@item
+@cindex POSIX @subentry modalit@`a
In modalit@`a POSIX, i confronti tra stringhe usano le funzioni di
libreria @code{strcoll()} / @code{wcscoll()}
(@pxref{Confronto POSIX di stringhe}).
@@ -42044,8 +42205,8 @@ dettaglio era stato dimenticato al momento in cui era
stata preparata la
@node Estensioni comuni
@appendixsec Sommario Estensioni Comuni
-@cindex estensioni, Brian Kernighan @command{awk}
-@cindex estensioni, @command{mawk}
+@cindex estensioni @subentry Brian Kernighan @command{awk}
+@cindex estensioni @subentry @command{mawk}
La tabella seguente dettaglia le estensioni comuni supportate
da @command{gawk}, da Brian Kernighan @command{awk} e da @command{mawk},
le tre versioni liberamente disponibili pi@`u usate di @command{awk}
@@ -42082,6 +42243,8 @@ Questo
all'interno di espressioni regolari, le loro relazioni con la localizzazione,
e l'effetto da ci@`o determinato su diverse versioni di @command{gawk}.
+@cindex ASCII
+@cindex EBCDIC
Gli strumenti originali Unix aventi a che fare con espressioni regolari
stabilivano che intervalli di caratteri (come @samp{[a-z]}) individuavano
un carattere qualsiasi tra il primo carattere dell'intervallo e l'ultimo
@@ -42152,6 +42315,7 @@ Un tale risultato dipende dalle impostazioni di
localizzazione (e quindi
potrebbe non succedere sul sistema che si sta usando).
@cindex Unicode
+@cindex ASCII
Considerazioni simili valgono per altri intervalli. Per esempio, @samp{["-/]}
@`e perfettamente valido in ASCII, ma non @`e valido in molte localizzazioni
Unicode, p.es. in @code{en_US.UTF-8}.
@@ -42203,7 +42367,7 @@ In ogni caso @command{gawk} aderisce allo standard
POSIX.
@node Contributori
@appendixsec I principali contributori a @command{gawk}
-@cindex @command{gawk}, lista di contributori a
+@cindex @command{gawk} @subentry lista di contributori a
@quotation
@i{Riconoscere sempre il merito, se un merito va riconosciuto.}
@author Anonimo
@@ -42494,7 +42658,7 @@ Juan Manuel Guerrero ha preso in carico la manutenzione
dellla
versione DJGPP di @command{gawk}.
@item
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
Arnold Robbins
ha lavorato su @command{gawk} dal 1988, dapprima
aiutando David Trueman e in seguito, dal 1994 circa, come
@@ -42526,6 +42690,8 @@ Queste estensioni possono essere disabilitate
specificando l'opzione
@option{--traditional} o @option{--posix}.
@item
+@cindex ASCII
+@cindex EBCDIC
L'interazione tra localizzazioni POSIX e individuazione di @dfn{regexp}
in @command{gawk} @`e stata causa di malintesi nel corso degli anni. Oggi
@command{gawk} implementa l'Interpretazione Razionale degli Intervalli
@@ -42547,8 +42713,10 @@ esauriente e attribuisca il giusto riconoscimento
quando questo @`e dovuto.
@appendix Installare @command{gawk}
@c last two commas are part of see also
-@cindex sistemi operativi, si veda anche GNU/Linux@comma{} sistemi operativi
per PC@comma{} Unix
-@cindex @command{gawk}, installare
+@cindex sistemi operativi
+@cindex sistemi operativi @seealso{GNU/Linux}
+@cindex sistemi operativi @seealso{Linux}
+@cindex @command{gawk} @subentry installare
@cindex installare @command{gawk}
Quest'appendice contiene istruzioni per installare @command{gawk} sulle
varie piattaforme supportate dagli sviluppatori. Lo sviluppatore
@@ -42571,8 +42739,8 @@ della versione specifica di una particolare piattaforma.
@node Distribuzione di Gawk
@appendixsec La distribuzione di @command{gawk}
-@cindex codice sorgente di @command{gawk}
-@cindex sorgente, codice, @command{gawk}
+@cindex codice sorgente @subentry @command{gawk}
+@cindex sorgente @subentry codice @subentry @command{gawk}
Questa @value{SECTION} spiega come ottenere la distribuzione
di @command{gawk}, come scompattarla, e cosa @`e contenuto nei vari file
@@ -42586,8 +42754,8 @@ e nelle sottodirectory risultanti.
@node Scaricare
@appendixsubsec Ottenere la distribuzione di @command{gawk}
-@cindex @command{gawk}, codice sorgente@comma{} ottenere il
-@cindex codice sorgente di @command{gawk}, ottenere il
+@cindex @command{gawk} @subentry codice sorgente @subentry ottenere il
+@cindex codice sorgente @subentry @command{gawk} @subentry ottenere il
Ci sono due modi per ottenere del software GNU:
@itemize @value{BULLET}
@@ -42670,7 +42838,7 @@ Si dovrebbe sentire un esperto di quel sistema.
@node Contenuti della distribuzione
@appendixsubsec Contenuti della distribuzione @command{gawk}
-@cindex @command{gawk}, distribuzione di
+@cindex @command{gawk} @subentry distribuzione di
@cindex distribuzione di @command{gawk}
La distribuzione di @command{gawk} contiene un certo numero di file
@@ -42732,8 +42900,8 @@ sono lasciati indefiniti, o ai quali @command{gawk} non
pu@`o conformarsi
pienamente, come pure una lista di specifiche che lo standard POSIX dovrebbe
contenere, ma che non sono presenti.
-@cindex intelligenza artificiale, @command{gawk} e
-@cindex @command{gawk} e l'intelligenza artificiale
+@cindex intelligenza artificiale @subentry @command{gawk} e
+@cindex @command{gawk} @subentry e l'intelligenza artificiale
@item doc/awkforai.txt
Puntatori alla bozza originale di un breve articolo
che spiega perch@'e @command{gawk} @`e un linguaggio adatto alla
@@ -42948,14 +43116,14 @@ usando il comando GNU Autoconf.
@ifnotinfo
(Il software Autoconf @`e
descritto in dettaglio in
-@cite{Autoconf---Generating Automatic Configuration Scripts},
+@cite{Autoconf --- Generating Automatic Configuration Scripts},
che pu@`o essere trovato in rete sul sito
@uref{https://www.gnu.org/software/autoconf/manual/index.html,
della Free Software Foundation}.)
@end ifnotinfo
@ifinfo
(Il software Autoconf @`e descritto in dettaglio a partire da
-@inforef{Top, , Autoconf, autoconf,Autoconf---Generating Automatic
Configuration Scripts}.)
+@inforef{Top, , Autoconf, autoconf,Autoconf --- Generating Automatic
Configuration Scripts}.)
@end ifinfo
Per configurare @command{gawk} basta eseguire @command{configure}:
@@ -43030,34 +43198,34 @@ su altre piattaforme, la posizione corretta pu@`o
essere differente.
@table @command
-@cindex @command{gawkpath_default}, funzione della shell
-@cindex funzione della shell @command{gawkpath_default}
+@cindex @command{gawkpath_default} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawkpath_default}
@item gawkpath_default
Ripristina la variabile d'ambiente @env{AWKPATH} al suo valore di default.
-@cindex @command{gawkpath_prepend}, funzione della shell
-@cindex funzione della shell @command{gawkpath_prepend}
+@cindex @command{gawkpath_prepend} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawkpath_prepend}
@item gawkpath_prepend
Aggiunge l'argomento all'inizio della variabile d'ambiente @env{AWKPATH}.
-@cindex @command{gawkpath_append}, funzione della shell
-@cindex funzione della shell @command{gawkpath_append}
+@cindex @command{gawkpath_append} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawkpath_append}
@item gawkpath_append
Aggiunge l'argomento alla fine della variabile d'ambiente @env{AWKPATH}.
-@cindex @command{gawklibpath_default}, funzione della shell
-@cindex funzione della shell @command{gawklibpath_default}
+@cindex @command{gawklibpath_default} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawklibpath_default}
@item gawklibpath_default
Reimposta la variabile d'ambiente @env{AWKLIBPATH} al suo valore di default.
-@cindex @command{gawklibpath_prepend}, funzione della shell
-@cindex funzione della shell @command{gawklibpath_prepend}
+@cindex @command{gawklibpath_prepend} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawklibpath_prepend}
@item gawklibpath_prepend
Aggiunge l'argomento all'inizio della variabile d'ambiente
@env{AWKLIBPATH}.
-@cindex @command{gawklibpath_append}, funzione della shell
-@cindex funzione della shell @command{gawklibpath_append}
+@cindex @command{gawklibpath_append} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawklibpath_append}
@item gawklibpath_append
Aggiunge l'argomento alla fine della variabile d'ambiente
@env{AWKLIBPATH}.
@@ -43067,8 +43235,9 @@ Aggiunge l'argomento alla fine della variabile
d'ambiente
@node Ulteriori opzioni di configurazione
@appendixsubsec Ulteriori opzioni di configurazione
-@cindex @command{gawk}, configurazione, opzioni di
-@cindex configurazione di @command{gawk}, opzioni di
+@cindex @command{gawk} @subentry configurazione @subentry opzioni di
+@cindex configurazione di @command{gawk} @subentry opzioni di
+@cindex opzioni di configurazione @subentry di @command{gawk}
Ci sono parecchie altre opzioni che si possono utilizzare sulla riga
di comando di @command{configure}
@@ -43076,8 +43245,8 @@ quando si compila @command{gawk} a partire dai
sorgenti, tra cui:
@table @code
-@cindex @option{--disable-extensions}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-extensions}
+@cindex @option{--disable-extensions} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @option{--disable-extensions}
@item --disable-extensions
Disabilita il meccanismo delle estensioni all'interno di
@command{gawk}. Specificando quest'opzione non @`e possibile
@@ -43090,8 +43259,8 @@ su un'altra piattaforma.
L'azione di default @`e di controllare dinamicamente se le estensioni
possono essere configurate e compilate.
-@cindex @option{--disable-lint}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-lint}
+@cindex @option{--disable-lint} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @code{--disable-lint}
@item --disable-lint
Disabilitare i controlli @dfn{lint} all'interno di @command{gawk}. Le opzioni
@option{--lint} e @option{--lint-old}
@@ -43115,23 +43284,23 @@ Se si usa quest'opzione alcuni dei test di
funzionalit@`a non avranno successo.
Quest'opzione potr@`a essere rimossa in futuro.
@end quotation
-@cindex @option{--disable-mpfr}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-mpfr}
+@cindex @option{--disable-mpfr} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @code{--disable-mpfr}
@item --disable-mpfr
Non effettuare il controllo delle librerie MPFR e GMP.
Ci@`o pu@`o essere utile principalmente per gli sviluppatori,
per assicurarsi che tutto funzioni regolarmente nel caso in cui
il supporto MPFR non sia disponibile.
-@cindex @option{--disable-nls}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-nls}
+@cindex @option{--disable-nls} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @code{--disable-nls}
@item --disable-nls
Non attivare la traduzione automatica dei messaggi.
Ci@`o normalmente non @`e consigliabile, ma pu@`o apportare qualche lieve
miglioramento nei tempi di esecuzione di un programma.
-@cindex @option{--enable-versioned-extension-dir}, opzione di configurazione
-@cindex opzione di configuzazione @code{--enable-versioned-extension-dir}
+@cindex @option{--enable-versioned-extension-dir} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry
@code{--enable-versioned-extension-dir}
@item --enable-versioned-extension-dir
Usare una directory con l'indicazione della versione per le estensioni.
Il nome della directory conterr@`a la versione principale e quella
@@ -43147,7 +43316,7 @@ delle opzioni disponibili in @command{configure}.
@node Filosofia della configurazione
@appendixsubsec Il processo di configurazione
-@cindex @command{gawk}, configurazione di
+@cindex @command{gawk} @subentry configurazione di
@cindex configurazione di @command{gawk}
Questa @value{SECTION} interessa solo a chi abbia un minimo di familiarit@`a
con
il linguaggio C e con i sistemi operativi di tipo Unix.
@@ -43173,7 +43342,7 @@ corrente. Per esempio, pu@`o non esserci l'elemento
@code{st_blksize} nella
struttura @code{stat}. In questo caso, @samp{HAVE_STRUCT_STAT_ST_BLKSIZE} @`e
indefinito.
-@cindex @code{custom.h}, file
+@cindex @code{custom.h} (file)
@`E possible che il compilatore C del sistema in uso "tragga in inganno"
@command{configure}. Pu@`o succedere nel caso in cui non viene restituito
un errore se una funzione di libreria non @`e disponibile. Per superare questo
@@ -43208,9 +43377,9 @@ vari sistemi non-Unix.
@node Installazione su PC
@appendixsubsec Installazione su MS-Windows
-@cindex PC, @command{gawk} su sistemi operativi
-@cindex sistemi operativi per PC, @command{gawk} su
-@cindex installare @command{gawk} su sistemi operativi per PC
+@cindex PC @subentry @command{gawk} su sistemi operativi
+@cindex sistemi operativi @subentry per PC @subentry @command{gawk} su
+@cindex installare @command{gawk} @subentry su sistemi operativi per PC
Questa @value{SECTION} tratta dell'installazione e uso di @command{gawk}
su macchine con architettura Intel che eseguono qualsiasi versione di
MS-Windows.
@@ -43232,6 +43401,7 @@ Si veda anche il file @file{README_d/README.pc} nella
distribuzione.
@node Installazione binaria su PC
@appendixsubsubsec Installare una distribuzione predisposta per sistemi
MS-Windows
+@cindex installare @command{gawk} @subentry su MS-Windows
La sola distribuzione binaria predisposta supportata per i sistem MS-Windows
@`e quella messa a disposizione da Eli Zaretskii
@@ -43247,7 +43417,7 @@ Il file @file{README_d/README.pc} nella distribuzione
@command{gawk}
contiene ulteriori annotazioni, e il file @file{pc/Makefile} contiene
informazioni importanti sulle opzioni di compilazione.
-@cindex compilare @command{gawk} per MS-Windows
+@cindex compilare @command{gawk} @subentry per MS-Windows
Per compilare @command{gawk} per Windows32, occorre copiare i file
dalla directory @file{pc} (@emph{tranne} il file @file{ChangeLog}) alla
directory che contiene il resto dei sorgenti di @command{gawk}, e quindi
@@ -43267,8 +43437,8 @@ usando gli strumenti MinGW, scrivere @samp{make
mingw32}.
@node Uso su PC
@appendixsubsubsec Usare @command{gawk} su sistemi operativi PC
-@cindex PC, @command{gawk} su sistemi operativi
-@cindex sistemi operativi PC, @command{gawk} su
+@cindex PC @subentry @command{gawk} su sistemi operativi per
+@cindex sistemi operativi @subentry per PC @subentry @command{gawk} su
Sotto MS-Windows, l'ambiente MinGW consente di usare
sia l'operatore @samp{|&} che le operazioni su rete TCP/IP
@@ -43276,12 +43446,12 @@ sia l'operatore @samp{|&} che le operazioni su rete
TCP/IP
L'ambiente DJGPP non consente di usare @samp{|&}.
@cindex percorso di ricerca
-@cindex percorso di ricerca per file sorgente
-@cindex @command{gawk}, versione MS-Windows di
-@cindex @code{;} (punto e virgola), @env{AWKPATH} variabile e
-@cindex punto e virgola (@code{;}), @env{AWKPATH} variabile e
-@cindex @env{AWKPATH}, variabile d'ambiente
-@cindex variabile d'ambiente @env{AWKPATH}
+@cindex percorso di ricerca @subentry per file sorgente
+@cindex @command{gawk} @subentry versione MS-Windows di
+@cindex @code{;} (punto e virgola) @subentry @env{AWKPATH} variabile e
+@cindex punto e virgola (@code{;}) @subentry @env{AWKPATH} variabile e
+@cindex @env{AWKPATH} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{AWKPATH}
Le versioni MS-Windows di @command{gawk} ricercano i file di
programma come descritto in @ref{AWKPATH (Variabile)}. Comunque, gli elementi
della variabile @env{AWKPATH} sono separati tra di loro da un punto e virgola
@@ -43289,11 +43459,10 @@ della variabile @env{AWKPATH} sono separati tra di
loro da un punto e virgola
Se @env{AWKPATH} @`e non impostata o ha per valore la stringa nulla, il
percorso
di ricerca di default @`e @samp{@w{.;c:/lib/awk;c:/gnu/lib/awk}}.
-@cindex estensioni comuni, variabile @code{BINMODE}
-@c @cindex extensions, common@comma{} @code{BINMODE} variable
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{BINMODE}
-@cindex @code{BINMODE}, variabile
-@cindex variabile @code{BINMODE}
+@cindex estensioni comuni @subentry variabile @code{BINMODE}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile
@code{BINMODE}
+@cindex @code{BINMODE} (variabile)
+@cindex variabile @subentry @code{BINMODE}
Sotto MS-Windows,
@command{gawk} (come molti altri programmi di trattamento testi) converte
automaticamente la stringa di fine riga @samp{\r\n} in @samp{\n} leggendo
dall'input
@@ -43394,8 +43563,8 @@ esempio l'impostazione di @code{RS} pu@`o essere
spostata in una regola
@node Cygwin
@appendixsubsubsec Usare @command{gawk} in ambiente Cygwin
-@cindex compilare @command{gawk} per Cygwin
-@cindex Cygwin, compilare @command{gawk} per
+@cindex compilare @command{gawk} @subentry per Cygwin
+@cindex Cygwin @subentry compilare @command{gawk} per
@command{gawk} pu@`o essere compilato e usato ``cos@`{@dotless{i}} com'@`e''
sotto MS-Windows se
si opera all'interno dell'ambiente @uref{http://www.cygwin.com, Cygwin}.
@@ -43412,9 +43581,14 @@ make && make check
In confronto a un sistema GNU/Linux sulla stessa macchina, l'esecuzione
del passo di @samp{configure} sotto Cygwin richiede molto pi@`u tempo.
-Tuttavia si conclude regolarmente, e poi @samp{make} funziona come ci si
+Tuttavia si conclude regolarmente, e poi @samp{make} procede come ci si
aspetta.
+@cindex installare @command{gawk} @subentry su Cygwin
+SI pu@`o anche installare @command{gawk} con la procedura di installazione
+normalmente usata per tutto il software Cygwin.
+In generale, Cygwin fornisce l'ultima versione rilasciata di @command{gawk}.
+
Le versioni pi@`u recenti di Cygwin aprono tutti i file in modalit@`a binaria.
Ci@`o implica che si dovrebbe usare @samp{RS = "\r?\n"} per riuscire a
gestire file di testo MS-Windows in formato standard, in cui ogni riga
@@ -43441,9 +43615,9 @@ automaticamente la conversione di @code{"\r\n"}, mentre
cos@`{@dotless{i}} non @
@c now address@hidden
@c now address@hidden
-@cindex @command{gawk}, versione VMS di
-@cindex installare @command{gawk} su VMS
-@cindex VMS, installare @command{gawk} su
+@cindex @command{gawk} @subentry versione VMS di
+@cindex installare @command{gawk} @subentry su VMS
+@cindex VMS @subentry installare @command{gawk} su
Questa @value{SUBSECTION} descrive come compilare e installare @command{gawk}
sotto VMS. Il termine classico ``VMS'' @`e usato qui anche per designare
OpenVMS.
@@ -43461,8 +43635,8 @@ OpenVMS.
@node Compilazione su VMS
@appendixsubsubsec Compilare @command{gawk} su VMS
-@cindex compilare @command{gawk} per VMS
-@cindex VMS, compilare @command{gawk} per
+@cindex compilare @command{gawk} @subentry per VMS
+@cindex VMS @subentry compilare @command{gawk} per
Per compilare @command{gawk} sotto VMS, esiste una procedura di comandi
@code{DCL} che esegue tutti i comandi @code{CC} e @code{LINK} necessari. C'@`e
@@ -43672,8 +43846,8 @@ per forzare un esame dei parametri in stile Unix,
piuttosto che nella modalit@`a
parametri, per esempio, pi@`u @value{DF} in input) @`e presente, non c'@`e
ambiguit@`a,
e l'opzione @option{--} pu@`o essere omessa.
-@cindex codice di ritorno, di @command{gawk}, in VMS
-@cindex exit, codice di ritorno, di @command{gawk}, in VMS
+@cindex codice di ritorno @subentry di @command{gawk} @subentry in VMS
+@cindex @code{exit} (istruzione) @subentry codice di ritorno di
@command{gawk}, in VMS
Il valore di @code{exit} @`e un valore in stile Unix e viene trasformato in
un codice di ritorno VMS all'uscita del programma.
@@ -43703,8 +43877,8 @@ un errore fatale come 4, e tutti
gli altri valori erano restituiti immodificati. Questa era una violazione
rispetto alle specifiche di codifica delle condizioni di uscita di VMS.
-@cindex numeri in virgola mobile, VAX/VMS
-@cindex VAX/VMS, numeri in virgola mobile,
+@cindex numeri @subentry in virgola mobile @subentry VAX/VMS
+@cindex VAX/VMS @subentry numeri in virgola mobile,
L'aritmetica in virgola mobile VAX/VMS usa un arrotondamento statistico.
@xref{Funzione round}.
@@ -43714,8 +43888,7 @@ VMS, come VAX/VMS 7.3, non impostano questi nomi logici.
@c @cindex directory search
@c @cindex path, search
-@cindex percorso di ricerca
-@cindex percorso di ricerca per file sorgente
+@cindex percorso di ricerca @subentry per file sorgente
Il percorso di ricerca di default, nella ricerca dei file di programma per
@command{awk} specificati dall'opzione @option{-f}, @`e
@code{"SYS$DISK:[],AWK_LIBRARY:"}. Il nome logico @env{AWKPATH} pu@`o essere
@@ -43851,8 +44024,8 @@ Si raccomanda di compilare e usare la versione corrente.
@end quotation
@c the radio show, not the book. :-)
-@cindex debug, @command{gawk}, segnalare bug
-@cindex risoluzione problemi @command{gawk}, segnalare bug
+@cindex debug @subentry @command{gawk} @subentry segnalare bug
+@cindex risoluzione di problemi @subentry @command{gawk} @subentry segnalare
bug
Se si incontrano problemi con @command{gawk} o se si ritiene di aver trovato un
bug, si raccomanda di segnalarlo agli sviluppatori;
non c'@`e un impegno preciso a intervenire, ma c'@`e una buona possibilit@`a
che ci
@@ -43899,10 +44072,10 @@ se il problema @`e un problema di documentazione.
Questa informazione si pu@`o ottenere con il comando @samp{gawk --version}.
@cindex @code{bug-gawk@@gnu.org} indirizzo per la segnalazione dei bug
-@cindex email, indirizzo per segnalare bug, @code{bug-gawk@@gnu.org}
-@cindex indirizzo email per segnalare bug, @code{bug-gawk@@gnu.org}
-@cindex bug, segnalare, indirizzo email, @code{bug-gawk@@gnu.org}
-@cindex segnalare bug, indirizzo email, @code{bug-gawk@@gnu.org}
+@cindex email @subentry indirizzo per segnalare bug @subentry
@code{bug-gawk@@gnu.org}
+@cindex indirizzo email per segnalare bug @subentry @code{bug-gawk@@gnu.org}
+@cindex bug @subentry segnalare @subentry indirizzo email,
@code{bug-gawk@@gnu.org}
+@cindex segnalare bug @subentry indirizzo email @subentry
@code{bug-gawk@@gnu.org}
Una volta pronta la descrizione precisa del problema, si spedisca un messaggio
di posta elettronica a @EMAIL{bug-gawk@@gnu.org,bug-gawk at gnu dot org}.
@@ -43952,7 +44125,7 @@ nella corrispondenza con la lista
@c To: Aharon Robbins <address@hidden>
@c CC: address@hidden
Ho iniziato a ignorare Usenet un paio di anni fa, e non me ne sono mai
-pentito. @`E come quando si parla di sport alla radio---ci si sente
+pentito. @`E come quando si parla di sport alla radio --- ci si sente
pi@`u intelligenti per aver lasciato perdere.
@author Chet Ramey
@end quotation
@@ -44002,10 +44175,10 @@ Le persone che si occupano delle varie versioni di
@command{gawk} sono:
@c put the index entries outside the table, for docbook
@cindex Buening, Andreas
-@cindex Malmberg, John E.
+@cindex Malmberg, John
@cindex Pitts, Dave
@cindex G., Daniel Richard
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
@cindex Zaretskii, Eli
@cindex Guerrero, Juan Manuel
@ifset SMALLPRINT
@@ -44042,8 +44215,8 @@ versione sar@`a rimossa dalla distribuzione.
@node Altre versioni
@appendixsec Altre implementazioni di @command{awk} liberamente disponibili
-@cindex @command{awk}, implementazioni di
-@cindex implementazioni di @command{awk}
+@cindex @command{awk} @subentry implementazioni di
+@cindex implementazione @subentry di @command{awk}
@ignore
From: emory!amc.com!brennan (Michael Brennan)
Subject: C++ comments in awk programs
@@ -44077,10 +44250,10 @@ Questa @value{SECTION} descrive in breve dove @`e
possibile trovarle:
@table @asis
@cindex Kernighan, Brian
-@cindex sorgente, codice, Brian Kernighan @command{awk}
-@cindex codice sorgente, Brian Kernighan @command{awk}
-@cindex @command{awk}, versioni di, si veda anche Brian Kernighan,
@command{awk} di
-@cindex Brian Kernighan, @command{awk} di, codice sorgente
+@cindex sorgente @subentry codice @subentry Brian Kernighan @command{awk}
+@cindex codice sorgente @subentry Brian Kernighan @command{awk}
+@cindex @command{awk} @subentry versioni di @seealso{Brian Kernighan,
@command{awk} di}
+@cindex Brian Kernighan @subentry @command{awk} di @subentry codice sorgente
@item Unix @command{awk}
Brian Kernighan, uno degli sviluppatori originali di Unix @command{awk},
ha reso disponibile liberamente la sua implementazione di @command{awk}.
@@ -44112,9 +44285,9 @@ versioni di BWK @command{awk} che @`e riuscito a
trovare. @`E disponibile in
@uref{git://github.com/danfuzz/one-true-awk}.
@cindex Brennan, Michael
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
-@cindex codice sorgente, @command{mawk}
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
+@cindex codice sorgente @subentry @command{mawk}
@item @command{mawk}
Michael Brennan ha scritto un'implementazione indipendente di @command{awk},
di nome @command{mawk}. @`E disponibile sotto la licenza
@@ -44150,10 +44323,10 @@ Le sue versioni di sviluppo sono disponibili tramite
Git dalla pagina GitHub
@uref{https://github.com/mikebrennan000/mawk-2, del progetto}.
@cindex Sumner, Andrew
-@cindex @command{awka}, compilatore per @command{awk}
-@cindex compilatore per @command{awk}, @command{awka}
-@cindex sorgente, codice, @command{awka}
-@cindex codice sorgente di @command{awka}
+@cindex @command{awka} @subentry compilatore per @command{awk}
+@cindex compilatore per @command{awk} @subentry @command{awka}
+@cindex sorgente @subentry codice @subentry @command{awka}
+@cindex codice sorgente @subentry @command{awka}
@item @command{awka}
Scritto da Andrew Sumner,
@command{awka} traduce i programmi @command{awk} in C, li compila,
@@ -44174,8 +44347,8 @@ codice sorgente dal 2001 circa.
@cindex Beebe, Nelson H.F.@:
@cindex @command{pawk} (versione con profilazione di Brian Kernighan
@command{awk})
-@cindex codice sorgente, @command{pawk}
-@cindex sorgente, codice, @command{pawk}
+@cindex codice sorgente @subentry @command{pawk}
+@cindex sorgente @subentry codice @subentry @command{pawk}
@item @command{pawk}
Nelson H.F.@: Beebe all'Universit@`a dello Utah ha modificato
BWK @command{awk} per fornire informazioni di temporizzazione e profilazione.
@@ -44190,8 +44363,8 @@ che in
@item BusyBox @command{awk}
@cindex BusyBox Awk
-@cindex codice sorgente, BusyBox Awk
-@cindex sorgente, codice, BusyBox Awk
+@cindex codice sorgente @subentry BusyBox Awk
+@cindex sorgente @subentry codice @subentry BusyBox Awk
BusyBox @`e un programma distribuito con licenza GPL che fornisce versioni
ridotte di parecchie piccole applicazioni, all'interno di un singolo modulo
eseguibile. @`E stato ideato per sistemi
@@ -44203,9 +44376,9 @@ directory @file{/usr/local/bin} del sistema corrente.
Per ulteriori
informazioni, si veda @uref{https://busybox.net, la pagina principale del
progetto}.
@cindex OpenSolaris
-@cindex Solaris, versione POSIX @command{awk}
-@cindex codice sorgente, Solaris @command{awk}
-@cindex sorgente, codice, Solaris @command{awk}
+@cindex Solaris @subentry versione POSIX @command{awk}
+@cindex codice sorgente @subentry Solaris @command{awk}
+@cindex sorgente @subentry codice @subentry Solaris @command{awk}
@item POSIX @command{awk} per OpenSolaris
Le versioni di @command{awk} in @file{/usr/xpg4/bin} e @file{/usr/xpg6/bin} su
Solaris sono @dfn{grosso modo} conformi allo standard POSIX. Sono basate sul
@@ -44215,10 +44388,9 @@ ore di lavoro. Rendere questo codice pi@`u
generalmente portabile (usando gli
strumenti GNU Autoconf e/o Automake) richiederebbe ulteriore lavoro, che non
@`e
stato fin qui compiuto, almeno per quel che risulta a chi scrive.
-@cindex Illumos
-@cindex Illumos, @command{awk} conforme a POSIX e
-@cindex codice sorgente, Illumos @command{awk}
-@cindex sorgente, codice, Illumos @command{awk}
+@cindex Illumos @subentry @command{awk} conforme a POSIX e
+@cindex codice sorgente @subentry Illumos @command{awk}
+@cindex sorgente @subentry codice @subentry Illumos @command{awk}
Il codice sorgente era un tempo disponibile dal sito web OpenSolaris.
Tuttavia, il progetto @`e terminato, e il sito web chiuso. Fortunatamente,
il progetto
@@ -44227,10 +44399,11 @@ mette a disposizione questa implementazione. Si
possono vedere i singoli file i
@uref{https://github.com/joyent/illumos-joyent/blob/master/usr/src/cmd/awk_xpg4}.
@cindex @command{goawk}
-@cindex Go, implementazione di @command{awk}
-@cindex sorgente, @command{goawk}
-@cindex @command{goawk}, sorgente di
-@cindex linguaggio di programmazione, Go
+@cindex Go @subentry implementazione di @command{awk}
+@cindex sorgente @subentry @command{goawk}
+@cindex @command{goawk} @subentry sorgente di
+@cindex linguaggi di programmazione @subentry Go
+@cindex Go @subentry linguaggio di programmazione
@item @command{goawk}
Questo @`e un interpretatore di @command{awk} scritto nel
@uref{https://golang.org/, Linguaggio di programmazion Go}.
@@ -44241,10 +44414,10 @@ L'autore ha scritto un buon
che descrive l'implementazione.
@cindex @command{jawk}
-@cindex Java, implementazione di @command{awk}
-@cindex implementazione Java di @command{awk}
-@cindex codice sorgente, @command{jawk}
-@cindex sorgente, codice, @command{jawk}
+@cindex Java @subentry implementazione di @command{awk}
+@cindex implementazione @subentry di @command{awk} in Java
+@cindex codice sorgente @subentry @command{jawk}
+@cindex sorgente @subentry codice @subentry @command{jawk}
@item @command{jawk}
Questo @`e un interprete per @command{awk} scritto in Java. Dichiara di
essere un interprete completo, anche se, poich@'e usa funzionalit@`a di Java
@@ -44254,14 +44427,15 @@ Ulteriori informazioni sono disponibili sulla
@uref{https://jawk.sourceforge.net, pagina principale del progetto}.
@item Libmawk
-@cindex @command{libmawk}
-@cindex codice sorgente, @command{libmawk}
-@cindex sorgente, codice, @command{libmawk}
+@cindex @command{libmawk} (interpretatore)
+@cindex codice sorgente @subentry @command{libmawk} (interpretatore)
+@cindex sorgente @subentry codice @subentry @command{libmawk} (interpretatore)
Questo @`e un interprete @command{awk} incorporabile, derivato da
@command{mawk}. Per ulteriori informazioni, si veda
@uref{http://repo.hu/projects/libmawk/}.
-@cindex codice sorgente, interpretatore @command{awk} incorporabile
+@cindex codice sorgente @subentry interpretatore @command{awk} incorporabile
+@cindex interpretatore @command{awk} incorporabile @subentry codice sorgente
@cindex Neacsu, Mircea
@item @command{awk} incorporabile di Mircea Neacsu
@item incorporabile, @command{awk}, di Mircea Neacsu
@@ -44270,9 +44444,9 @@ incorporabile, basato su BWK @command{awk}. @`E
disponibile
nel sito @uref{https://github.com/neacsum/awk}.
@item @code{pawk}
-@cindex codice sorgente, @command{pawk} (versione Python)
-@cindex sorgente, codice, @command{pawk} (versione Python)
-@cindex @code{pawk}, implementazione simile ad @command{awk} per Python
+@cindex codice sorgente @subentry @command{pawk} (versione Python)
+@cindex sorgente @subentry codice @subentry @command{pawk} (versione Python)
+@cindex @code{pawk} @subentry implementazione simile ad @command{awk} per
Python
Questo @`e un modulo Python che intende introdurre funzionalit@`a di tipo
@command{awk} in Python. Si veda @uref{https://github.com/alecthomas/pawk} per
ulteriori informazioni. (Questo programma non @`e correlato con la versione
@@ -44280,16 +44454,16 @@ modificata da Nelson Beebe di BWK @command{awk},
descritta prima.)
@item @w{QSE @command{awk}}
@cindex QSE @command{awk}
-@cindex codice sorgente, QSE @command{awk}
-@cindex sorgente, codice, QSE @command{awk}
+@cindex codice sorgente @subentry QSE @command{awk}
+@cindex sorgente @subentry codice @subentry QSE @command{awk}
Questo @`e un interprete di @command{awk} incorporabile. Per ulteriori
informazioni, si veda
@uref{https://code.google.com/p/qse/}. @c e @uref{http://awk.info/?tools/qse}.
@item @command{QTawk}
@cindex QuikTrim Awk
-@cindex codice sorgente, QuikTrim Awk
-@cindex sorgente, codice, QuikTrim Awk
+@cindex codice sorgente @subentry QuikTrim Awk
+@cindex sorgente @subentry codice @subentry QuikTrim Awk
Questa @`e un'implementazione indipendente di @command{awk} distribuita con la
licenza GPL. Ha un gran numero di estensioni rispetto ad @command{awk}
standard, e pu@`o non essere sintatticamente compatibile al 100% con esso. Si
@@ -44356,8 +44530,8 @@ gratuitamente. Molte rispettano lo standard POSIX;
altre un po' meno.
@ifclear FOR_PRINT
@node Note
@appendix Note di implementazione
-@cindex @command{gawk}, problemi di implementazione
-@cindex problemi di implementazione, @command{gawk}
+@cindex @command{gawk} @subentry problemi di implementazione
+@cindex problemi di implementazione @subentry @command{gawk}
Quest'appendice contiene informazioni che interessano soprattutto le persone
che aggiornano e mantengono @command{gawk}. L'intero contenuto si applica
@@ -44378,11 +44552,11 @@ specificatamente a @command{gawk} e non ad altre
implementazioni.
@node Modalit@`a di compatibilit@`a
@appendixsec Compatibilit@`a all'indietro e debug
-@cindex @command{gawk}, problemi di implementazione, compatibilit@`a
all'indietro
-@cindex @command{gawk}, problemi di implementazione, debug
-@cindex risoluzione di problemi, @command{gawk}
-@cindex problemi, risoluzione di, @command{gawk}
-@cindex problemi di implementazione@comma{} @command{gawk}, debug
+@cindex @command{gawk} @subentry problemi di implementazione @subentry
compatibilit@`a all'indietro
+@cindex @command{gawk} @subentry problemi di implementazione @subentry debug
+@cindex risoluzione di problemi @subentry @command{gawk}
+@cindex problemi @subentry risoluzione di @subentry @command{gawk}
+@cindex problemi di implementazione @subentry @command{gawk} @subentry debug
@xref{POSIX/GNU},
per un compendio delle estensioni GNU per il linguaggio e il programma
@@ -44442,8 +44616,8 @@ La
@ref{Distribuzione di Gawk} descrive come scaricare e installare
le versioni ufficiali rilasciate di @command{gawk}.
-@cindex @command{git}, programma di utilit@`a
-@cindex programma di utilit@`a @command{git}
+@cindex @command{git} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{git}
Peraltro, se si intende modificare @command{gawk} e mettere a disposizione le
modifiche, @`e preferibile lavorare sulla versione in via di sviluppo. Per far
ci@`o @`e necessario accedere al deposito del codice sorgente di
@command{gawk}.
@@ -44478,9 +44652,9 @@ un'estensione Git per lavorare con depositi di sorgenti
Git.
@node Aggiungere codice
@appendixsubsec Aggiungere nuove funzionalit@`a
-@cindex @command{gawk}, aggiungere funzionalit@`a a
-@cindex funzionalit@`a, aggiungere a @command{gawk}
-@cindex aggiungere funzionalit@`a a @command{gawk}
+@cindex @command{gawk} @subentry aggiungere funzionalit@`a a
+@cindex funzionalit@`a @subentry aggiungere a @command{gawk}
+@cindex aggiungere @subentry funzionalit@`a a @command{gawk}
Ognuno @`e libero di aggiungere tutte le nuove funzionalit@`a che vuole a
@command{gawk}. Comunque, se si desidera che tali modifiche siano incorporate
nella distribuzione di @command{gawk}, ci sono parecchi passi da fare per
@@ -44527,7 +44701,7 @@ di iniziare a modificare @command{gawk}.
@uref{https://www.gnu.org/prep/standards/, Progetto GNU}.
Sono disponibili anche versioni in formato Texinfo, Info, e DVI.)
-@cindex @command{gawk}, stile di codifica in
+@cindex @command{gawk} @subentry stile di codifica in
@item
Usare lo stile di codifica @command{gawk}.
Il codice sorgente in C di @command{gawk} segue le istruzioni dello
@@ -44631,8 +44805,8 @@ in formato @command{man}.
Si dovr@`a anche firmare un documento liberatorio relativo alle
modifiche apportate alla documentazione.
-@cindex @command{git}, programma di utilit@`a
-@cindex programma di utilit@`a @command{git}
+@cindex @command{git} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{git}
@item
Inviare le modifiche come file di differenze nel formato contestuale unificato.
Usare @samp{diff -u -r -N} per confrontare i sorgenti originali dell'albero
@@ -44663,8 +44837,8 @@ troppo tempo, potrei anche lasciar perdere la modifica.
@node Nuovi sistemi
@appendixsubsec Portare @command{gawk} su un nuovo Sistema Operativo
-@cindex portabilit@`a, @command{gawk}
-@cindex sistemi operativi, portare @command{gawk} su altri
+@cindex portabilit@`a @subentry @command{gawk}
+@cindex sistemi operativi @subentry portare @command{gawk} su altri
@cindex portare @command{gawk}
Se si vuol portare @command{gawk} su di un nuovo sistema operativo, sono
@@ -44748,7 +44922,7 @@ appropriati file @file{gawkmisc.???} da ogni
sottodirectory. Anche
quest'ultimo file va aggiornato.
Ogni file @file{gawkmisc.???} del @dfn{port} ha un suffisso esplicativo
-del tipo di macchina o del sistema operativo in questione---per esempio,
+del tipo di macchina o del sistema operativo in questione --- per esempio,
@file{pc/gawkmisc.pc} e @file{vms/gawkmisc.vms}. L'uso di suffissi distinti
invece di un semplice @file{gawkmisc.c}, rende possibile spostare file da
una sottodirectory propria del @dfn{port} nella sottodirectory principale,
@@ -44785,7 +44959,7 @@ parentesi graffe di proprio gradimento.
@node File derivati
@appendixsubsec Perch@'e i file generati sono tenuti in Git
-@cindex Git, uso per il codice sorgente di @command{gawk}
+@cindex Git @subentry uso per il codice sorgente di @command{gawk}
@c From emails written March 22, 2012, to the gawk developers list.
Se si esaminano i sorgenti di @command{gawk} nel deposito Git
@@ -45034,7 +45208,7 @@ Larry
@end ignore
@cindex Perl
@cindex Wall, Larry
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
@quotation
@i{AWK @`e un linguaggio simile a PERL, solo che @`e notevolmente pi@`u
elegante.}
@author Arnold Robbins
@@ -45363,8 +45537,8 @@ ed @`e stato rimosso dal codice sorgente nella
@node Concetti fondamentali
@appendix Concetti fondamentali di programmazione
-@cindex programmazione, concetti di
-@cindex programmazione, concetti di
+@cindex programmazione @subentry concetti di
+@cindex programmazione @subentry concetti di
Quest'@value{APPENDIX} si propone di definire alcuni dei concetti
e termini fondamentali usati nel resto di questo @value{DOCUMENT}.
@@ -45425,7 +45599,7 @@ sia un programma @dfn{interpretato}. In quest'ultimo
caso, un programma
direttamente eseguibile dal computer, come @command{awk}, legge il
programma, e quindi usa le istruzioni in esso contenute per elaborare i dati.
-@cindex programmazione, passi fondamentali
+@cindex programmazione @subentry passi fondamentali
Quando si scrive un programma, esso @`e composto normalmente
dai seguenti insiemi di istruzioni di base,
@ifnotdocbook
@@ -45500,7 +45674,7 @@ avvolta in una pellicola trasparente per evitare che
qualcuno la assaggi,
e inoltre vanno lavati i contenitori e le posate.
@end table
-@cindex Algoritmi
+@cindex algoritmi
Un @dfn{algoritmo} @`e la descrizione dettagliata della procedura necessaria
per
svolgere un compito o per elaborare dati. Lo si pu@`o paragonare alla ricetta
per preparare una torta. I programmi sono il modo con cui un
@@ -45523,8 +45697,8 @@ sono riuniti sotto il nome di ``input/output'' e, ancor
pi@`u spesso, con
l'abbreviazione ``I/O''. (In inglese ``input'' e ``output'' sono spesso usati
come verbi, nel gergo informatico, al posto di leggere e scrivere.)
-@cindex guidato-dai-dati, linguaggio di programmazione
-@cindex linguaggio di programmazione, guidato dai dati
+@cindex guidati-dai-dati @subentry linguaggi di programmazione
+@cindex linguaggi di programmazione @subentry guidati dai dati
@command{awk} gestisce la lettura dei dati, come anche la divisione in
record e campi. Lo scopo del programma dell'utente @`e di dire ad
@command{awk}
cosa fare con i dati. Questo vien fatto descrivendo @dfn{modelli} da
@@ -45545,10 +45719,10 @@ designare il record in input corrente e i campi che
compongono il record
stesso. Si possono inoltre raggruppare molti valori associati tra di loro
sotto un unico nome, utilizzando un vettore.
-@cindex valori numerici
-@cindex valori tipo stringa
-@cindex valori scalari
-@cindex scalari, valori
+@cindex valori @subentry numerici
+@cindex valori @subentry di tipo stringa
+@cindex valori @subentry scalari
+@cindex scalari @subentry valori
I dati, in particolare in @command{awk}, possono avere valori numerici, come 42
o 3.1415927, o avere come valore delle stringhe. Un valore di tipo stringa @`e
essenzialmente qualsiasi cosa che non sia un numero, per esempio un nome. Le
@@ -45642,8 +45816,8 @@ ISO C del 1999.
La situazione in cui due processi che comunicano tra loro sono entrambi
bloccati, in
attesa che l'altro processo faccia qualcosa.
-@cindex Ada, linguaggio di programmazione
-@cindex linguaggio di programmazione, Ada
+@cindex Ada @subentry linguaggio di programmazione
+@cindex linguaggi di programmazione @subentry Ada
@item Ada
Un linguaggio di programmazione originalmente definito dal Department of
Defense U.S.A.@: per la programmazione integrata. @`E stato progettato per
@@ -45709,9 +45883,10 @@ assegnati sono chiamati @dfn{rvalue}.
@xref{Operatori di assegnamento}.
@cindex Spencer, Henry
-@cindex @command{sed}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sed}
-@cindex incredibile assembler (@command{aaa}) scritto in @command{awk}
+@cindex @command{sed} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sed}
+@cindex amazing @command{awk} assembler (programma @command{aaa})
+@cindex programma @subentry @command{aaa} (amazing @command{awk} assembler)
@item Assembler incredibilmente scritto in @command{awk}
Henry Spencer dell'Universit@`a di Toronto ha scritto un assembler adatto a
molti diversi hardware, usando solo @dfn{script} @command{sed} e
@@ -45823,7 +45998,7 @@ Doug
Abbreviazione di ``Binary Digit'' [cifra binaria].
Tutti i valori nella memoria di un computer sono rappresentati nella forma di
cifre binarie: valori che sono zero o uno.
-Gruppi di bit possono essere interpretati differentemente---come numeri
+Gruppi di bit possono essere interpretati differentemente --- come numeri
interi, numeri in virgola mobile, dati di tipo carattere, indirizzi di altri
oggetti contenuti in memoria, o altri dati ancora.
@command{awk} permette di lavorare con numeri in virgola mobile e stringhe.
@@ -45894,9 +46069,9 @@ la
@ref{Separazione in base al contenuto}).
@cindex ASCII
-@cindex ISO 8859-1
-@cindex ISO Latin-1
-@cindex caratteri (codifiche macchina di caratteri)
+@cindex ISO @subentry 8859-1 (codifica caratteri)
+@cindex ISO @subentry Latin-1 (codifica caratteri)
+@cindex caratteri @subentry (codifiche macchina di caratteri)
@cindex insiemi di caratteri (codifiche macchina di caratteri)
@cindex Unicode
@item Caratteri
@@ -45912,8 +46087,8 @@ nei sistemi GNU/Linux.
@cindex Kernighan, Brian
@cindex Bentley, Jon
-@cindex @command{chem}, programma di utilit@`a
-@cindex programma di utilit@`a @command{chem}
+@cindex @command{chem} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{chem}
@item CHEM
Un preprocessore per @command{pic} che legge descrizioni di molecole
e produce l'input a @command{pic} che serve a disegnarle.
@@ -45988,7 +46163,7 @@ invece di produrre solo un valore. Espressioni di
assegnamento,
incremento e decremento, e invocazioni di funzioni hanno effetti collaterali.
(@xref{Operatori di assegnamento}).
-@cindex epoch, definizione di
+@cindex epoch @subentry definizione di
@item Epoca [Inizio del tempo in Unix]
la data usata come ``inizio del tempo'' per i campi che contengono date.
I valori del tempo nella maggior parte dei dei sistemi sono rappresentati
@@ -46000,6 +46175,7 @@ L'Epoca nei sistemi Unix e POSIX parte dal primo
gennaio 1970 alle ore
Si veda anche ``GMT'' e ``UTC''.
@item Esadecimale
+@cindex ASCII
Notazione per l'aritmetica in base 16, che usa le cifre @code{0}--@code{9} e
le lettere @code{A}--@code{F}, con @samp{A}
che rappresenta 10, @samp{B} che rappresenta 11, e cos@`{@dotless{i}} via,
fino a
@@ -46124,7 +46300,7 @@ Free Documentation License. Si veda ``Licenza
Documentazione Libera''.
@item File speciale
Un @value{FN} interpretato internamente da @command{gawk}, invece che
gestito direttamente dal sistema operativo in cui viene eseguito
-@command{gawk}---per esempio, @file{/dev/stderr}.
+@command{gawk} --- per esempio, @file{/dev/stderr}.
(@xref{File speciali}).
@item Flag [Indicatore]
@@ -46139,7 +46315,7 @@ controllate dalle stringhe di formato contenute nelle
variabili predefinite
@code{CONVFMT} e @code{OFMT}. (@xref{Lettere di controllo}).
@cindex formattatore incredibilmente duttile (@command{awf})
-@cindex programma @command{awf} (formattatore incredibilmente duttile)
+@cindex programma @subentry @command{awf} (formattatore incredibilmente
duttile)
@item Formattatore incredibilmente duttile (@command{awf})
Henry Spencer all'Universit@`a di Toronto ha scritto un formattatore che
accetta un ampio sottoassieme dei comandi di formattazione @samp{nroff -ms}
@@ -46202,8 +46378,7 @@ in fase di esecuzione di progranna.
L'implementazione GNU di @command{awk}.
@cindex GPL (General Public License)
-@cindex General Public License (GPL)
-@cindex GNU General Public License
+@cindex GNU @subentry General Public License
@item General Public License
Un documento che descrive le condizioni alle quali @command{gawk} e i suoi
file sorgenti possono essere distribuiti. (@xref{Copia}).
@@ -46216,7 +46391,7 @@ Si veda anche ``Epoca'' e ``UTC''.
@cindex FSF (Free Software Foundation)
@cindex Free Software Foundation (FSF)
-@cindex Progetto GNU
+@cindex progetto @subentry GNU
@item GNU
``GNU's not Unix'' (GNU non @`e Unix).
Un progetto della Free Software Foundation, ancora in corso, che mira a creare
@@ -46307,13 +46482,13 @@ se una determinata condizione @`e verificata.
Istruzioni di controllo sono: @code{if}, @code{for}, @code{while}, e @code{do}
(@pxref{Istruzioni}).
-@cindex Java, linguaggio di programmazione
-@cindex linguaggio di programmazione, Java
+@cindex Java @subentry linguaggio di programmazione
+@cindex linguaggi di programmazione @subentry Java
@item Java
Un moderno linguaggio di programmazione originalmente sviluppato da Sun
Microsystems (ora Oracle) che prevede la programmazione orientata agli
oggetti. Sebbene normalmente sia implementato compilando le istruzioni
-per una macchina virtuale standard (la JVM---Java Virtual Machine) il
+per una macchina virtuale standard (la JVM --- Java Virtual Machine) il
linguaggio pu@`o essere compilato per essere eseguito in maniera nativa.
@item Korn Shell
@@ -46328,7 +46503,7 @@ Si veda ``Licenza Documentazione Libera''.
@cindex LGPL (Lesser General Public License)
@cindex Lesser General Public License (LGPL)
-@cindex GNU Lesser General Public License
+@cindex GNU @subentry Lesser General Public License
@item Lesser General Public License
Questo documento descrive i termini nei quali possono essere distribuiti
degli archivi contenenti librerie in formato eseguibile o oggetti condivisi,
@@ -46597,10 +46772,9 @@ Si veda ``Stringa nulla''.
Il carattere generato premendo il tasto @kbd{TAB} sulla tastiera.
Normalmente pu@`o generare sino a otto spazi in output.
-@cindex Linux
@cindex GNU/Linux
@cindex Unix
-@cindex sistemi operativi basati su BSD
+@cindex sistemi operativi @subentry basati su BSD
@cindex NetBSD
@cindex FreeBSD
@cindex OpenBSD
@@ -46699,7 +46873,7 @@ Copyright @copyright{} 2007 Free Software Foundation,
Inc. @url{https://fsf.org/
This is an unofficial translation of the GNU General Public License into
Italian. It was not published by the Free Software Foundation, and does not
-legally state the distribution terms for software that uses the GNU GPL---only
+legally state the distribution terms for software that uses the GNU GPL ---
only
the original English text of the GNU GPL does that. However, we hope that this
translation will help Italian speakers understand the GNU GPL better.
@@ -47483,7 +47657,7 @@ leggi
@url{https://www.gnu.org/philosophy/why-not-lgpl.html}.
@cindex FDL (Free Documentation License)
@cindex Free Documentation License (FDL)
-@cindex GNU Free Documentation License
+@cindex GNU @subentry Free Documentation License
@c This file is intended to be included within another document,
@c hence no sectioning command or @node.
@@ -47494,7 +47668,7 @@ Copyright @copyright{} 2000, 2001, 2002, 2007, 2008
Free Software Foundation, In
This is an unofficial translation of the GNU Free Documentation License into
Italian. It was not published by the Free Software Foundation, and does not
-legally state the distribution terms for software that uses the GNU FDL---only
+legally state the distribution terms for software that uses the GNU FDL ---
only
the original English text of the GNU FDL does that. However, we hope that this
translation will help Italian speakers understand the GNU FDL better.
diff --git a/doc/it/sidebar.awk b/doc/it/sidebar.awk
index d1f3efc..4c0748e 100644
--- a/doc/it/sidebar.awk
+++ b/doc/it/sidebar.awk
@@ -37,7 +37,7 @@ BEGIN {
/^@end[ \t]+sidebar[ \t]*$/ {
collecting = 0
- printf "@cindex sidebar, %s\n", title
+ printf "@cindex riquadro @subentry %s\n", title
printf "@ifdocbook\n"
printf "@docbook\n"
printf "<sidebar><title>%s</title>\n", title
diff --git a/doc/it/texinfo.tex b/doc/it/texinfo.tex
index 78b23c1..ca05be3 100644
--- a/doc/it/texinfo.tex
+++ b/doc/it/texinfo.tex
@@ -5257,8 +5257,11 @@ end
% The default definitions
\def\sortas#1{}%
\def\seealso#1{\i{\putwordSeeAlso}\ #1}% for sorted index file only
-\def\putwordSeeAlso{See also}
-\def\seeentry#1{\i{\putwordSee}\ #1}% for sorted index file only
+% for Italian
+\def\putwordSeeAlso{Si veda anche}
+\def\seeentry#1{\i{\putwordSiVeda}\ #1}% for sorted index file only
+\def\putwordSiVeda{Si veda}
+% end for Italian
% Given index entry text like "aaa @subentry bbb @sortas{ZZZ}":
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 4 +
config.guess | 5 +-
config.sub | 2 +-
doc/ChangeLog | 4 +
doc/it/ChangeLog | 6 +
doc/it/gawktexi.in | 6048 ++++++++++++++++++++------------------
doc/it/sidebar.awk | 2 +-
doc/it/texinfo.tex | 7 +-
doc/texinfo.tex | 231 +-
extension/build-aux/ChangeLog | 4 +
extension/build-aux/config.guess | 5 +-
extension/build-aux/config.sub | 2 +-
extension/build-aux/install-sh | 13 +-
install-sh | 13 +-
14 files changed, 3287 insertions(+), 3059 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3831-gc5104f9,
Arnold Robbins <=