~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to doc/awkcard.in

  • Committer: Arnold D. Robbins
  • Date: 2010-07-16 10:09:56 UTC
  • Revision ID: git-v1:bc70de7b3302d5a81515b901cae376b8b51d2004
Tags: gawk-3.1.0
Move to gawk-3.1.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
.\" AWK Reference Card --- Arnold Robbins, arnold@gnu.org
2
2
.\"
3
 
.\" Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
 
3
.\" Copyright (C) 1996-2001 Free Software Foundation, Inc.
4
4
.\" 
5
5
.\" Permission is granted to make and distribute verbatim copies of
6
6
.\" this reference card provided the copyright notice and this permission
45
45
.ES
46
46
.in +.2i
47
47
.nf
48
 
\*(FRAWK Program Execution     4
49
 
Action Statements      7
50
 
Arrays 9
51
 
Bug Reports    15
 
48
\*(FRAction Statements 7
 
49
Arrays 11
 
50
Awk Program Execution  4
 
51
Bit Manipulation Functions (\*(GK)     16
 
52
Bug Reports    2
 
53
Closing Redirections   12
52
54
Command Line Arguments (standard)      2
53
55
Command Line Arguments (\*(GK) 3
54
56
Command Line Arguments (\*(MK) 4
55
 
Conversions And Comparisons    10
56
 
Copying Permissions    16
 
57
Conversions And Comparisons    9
 
58
Copying Permissions    18
57
59
Definitions    2
58
 
Environment Variables  16
59
 
Escape Sequences       7
60
 
Expressions    9
 
60
Dynamic Extensions (\*(GK)     18
 
61
Environment Variables (\*(GK)  18
 
62
Escape Sequences       8
 
63
Expressions    11
61
64
Fields 6
62
 
FTP Information        16
63
 
Historical Features (\*(GK)    16
64
 
Input Control  11
 
65
FTP/HTTP Information   18
 
66
Historical Features (\*(GK)    18
 
67
Input Control  12
 
68
Internationalization (\*(GK)   16
65
69
Lines And Statements   5
66
 
.ig
67
 
Localization   10
68
 
..
69
 
Numeric Functions      13
70
 
Output Control 11
 
70
Localization (\*(GK)   17
 
71
Numeric Functions      14
 
72
Output Control 12
71
73
Pattern Elements       7
72
74
POSIX Character Classes (\*(GK)        6
73
 
Printf Formats 12
 
75
Printf Formats 13
74
76
Records        6
75
77
Regular Expressions    5
76
 
Special Filenames      13
77
 
String Functions       14
78
 
Time Functions (\*(GK) 15
79
 
User-defined Functions 15
 
78
Special Filenames      14
 
79
String Functions       15
 
80
Time Functions (\*(GK) 16
 
81
User-defined Functions 17
80
82
Variables      8\*(CX
81
83
.in -.2i
82
84
.EB "\s+2\f(HBCONTENTS\*(FR\s0"
83
 
.sp
 
85
.sp .4
84
86
.TD
85
87
.fi
86
 
\*(CD\*(FRThis reference card was written by Arnold Robbins.
87
 
Brian Kernighan and Michael Brennan reviewed it; we thank them
88
 
for their help.
89
 
.sp
 
88
\*(CD\*(FRArnold Robbins wrote this reference card.
 
89
We thank
 
90
Brian Kernighan and Michael Brennan who reviewed it.
 
91
.sp .4
90
92
.SL
91
 
.sp
 
93
.sp .4
92
94
.so SRCDIR/ad.block
93
95
.\" a subtlety here; this line changes color. We rely on it
94
96
.\" also to provide a blank line.
95
97
\*(CD
96
98
.SL
97
99
.nf
98
 
\*(FR\(co Copyright 1996-2000, Free Software Foundation
 
100
\*(FR\(co Copyright 1996-2001, Free Software Foundation
99
101
59 Temple Place \(em Suite 330
100
102
Boston, MA  02111-1307 USA
101
103
.nf
124
126
.fi
125
127
.in +\n(INu
126
128
.ti -\n(INu
127
 
\(bu\|\^\*(FI\*(IN\fP is used to indicate user input and for syntactic
 
129
\(bu\|\^\*(FI\*(IN\fP is used for emphasis, to indicate user input and for syntactic
128
130
placeholders, such as \*(FIvariable\fP or \*(FIaction\fP.
129
131
.in -\n(INu
130
132
.br
137
139
\*(FC1.4e2\*(FR
138
140
or
139
141
\*(FC4.1E5\*(FR.
 
142
\*(CBNumbers may also be given in octal or hexadecimal: e.g.,
 
143
\*(FC011\*(FR or \*(FC0x11\*(FR.\*(CD
140
144
.sp .5
141
145
\*(FIescape sequences\fP \- a special sequence of characters beginning
142
146
with a backslash, used to describe otherwise unprintable characters.
160
164
.sp .5
161
165
\*(FIrule\fP \- a pattern-action pair, where the pattern or action may
162
166
be missing.\*(CX
163
 
.EB \s+2\f(HBDEFINITIONS\*(FR\s0
 
167
.EB "\s+2\f(HBDEFINITIONS\*(FR\s0"
164
168
 
 
169
.\"
 
170
.\"
165
171
.\" --- Command Line Arguments
166
172
.ES
167
173
.fi
176
182
l lw(2.2i).
177
183
\*(FC\-F \*(FIfs\*(FR   use \*(FIfs\fP for the input field separator.
178
184
\*(FC\-v\*(FI var\*(FC\^=\^\*(FIval\*(FR        T{
179
 
assign the value \*(FIval\*(FR, to the variable \*(FIvar\*(FR,
 
185
assign the value \*(FIval\*(FR to the variable \*(FIvar\*(FR
180
186
before execution of the program begins. Such
181
187
variable values are available to the \*(FCBEGIN\fP rule.
182
188
T}
201
207
.TE
202
208
.EB "\s+2\f(HBCOMMAND LINE ARGUMENTS (standard)\*(FR\s0"
203
209
 
 
210
.\" --- Bug Reports
 
211
.ES
 
212
.fi
 
213
\*(CDIf you find a bug in this reference card, please report it via electronic
 
214
mail to \*(FCbug-gawk@gnu.org\*(FR.\*(CX
 
215
.EB "\s+2\f(HBBUG REPORTS\*(FR\s0"
 
216
 
204
217
.BT
205
218
 
 
219
.\"
 
220
.\"
 
221
.\" --- Command Line Arguments (gawk)
206
222
.ES
207
223
.fi
208
 
\*(CDThe following options are specific to \*(GK. The \*(FC\-W\*(FR
209
 
forms are for full POSIX compliance.
 
224
\*(CDThe following options are specific to \*(GK.
 
225
You may also use ``\*(FC\-W \*(FIoption\*(FR''
 
226
for full POSIX compliance.
 
227
Long options may abbreviated as long as the abbreviation
 
228
remains unique.
210
229
.sp .5
211
230
.ig
212
231
.\" This option is left undocumented, on purpose.
213
 
\*(FC\-\^\-nostalgia\*(FR
214
 
\*(FC\-W nostalgia\*(FR%T{
 
232
\*(FC\-\^\-nostalgia\*(FR%T{
215
233
provide a moment of nostalgia for
216
234
long time \*(AK users.
217
235
T}
218
236
..
219
237
.TS
220
238
expand, tab(%);
 
239
l lw(1.3i).
 
240
\*(FC\-\^\-assign \*(FIvar\*(FC\^=\^\*(FIval\*(FR%just like \*(FC\-v\fP.
 
241
\*(FC\-\^\-field-separator \*(FIfs\*(FR%just like \*(FC\-F\fP.
 
242
\*(FC\-\^\-file \*(FIprog-file%\*(FRjust like \*(FC\-f\fP.
 
243
.TE
 
244
.TS
 
245
expand, tab(%);
221
246
ls
222
 
l lw(1.8i).
223
 
\*(FC\-\^\-field-separator \*(FIfs\*(FR
224
 
%just like \*(FC\-F\fP
225
 
\*(FC\-\^\-assign \*(FIvar\*(FC\^=\^\*(FIval\*(FR%just like \*(FC\-v\fP
226
 
\*(FC\-\^\-file \*(FIprog-file%\*(FRjust like \*(FC\-f\fP
227
 
\*(FC\-\^\-traditional\*(FR
228
 
\*(FC\-\^\-compat\*(FR
229
 
\*(FC\-W compat\*(FR
230
 
\*(FC\-W traditional\*(FR%T{
231
 
turn off \*(GK-specific extensions
232
 
(\*(FC\-\^\-traditional\*(FR preferred).
 
247
l lw(2.2i).
 
248
\*(FC\-\^\-compat\*(FR, \*(FC\-\^\-traditional\*(FR
 
249
%T{
 
250
disable \*(GK-specific extensions
 
251
(the use of \*(FC\-\^\-traditional\*(FR is preferred).
233
252
T}
234
 
\*(FC\-\^\-copyleft\*(FR
235
 
\*(FC\-\^\-copyright\*(FR
236
 
\*(FC\-W copyleft\*(FR
237
 
\*(FC\-W copyright\*(FR%T{
 
253
.T&
 
254
ls
 
255
l lw(2.2i).
 
256
\*(FC\-\^\-copyleft\*(FR, \*(FC\-\^\-copyright\*(FR
 
257
%T{
238
258
print the short version of the GNU
239
259
copyright information on \*(FCstdout\*(FR.
240
260
T}
241
 
\*(FC\-\^\-help\*(FR
242
 
\*(FC\-\^\-usage\*(FR
243
 
\*(FC\-W help\*(FR
244
 
\*(FC\-W usage\*(FR%T{
 
261
.T&
 
262
ls
 
263
l lw(2.2i).
 
264
\*(FC\-\^\-dump-variables\*(FR[\*(FC=\*(FIfile\*(FR]
 
265
%T{
 
266
Print a sorted list of global variables,
 
267
their types and final values to
 
268
\*(FIfile\*(FR.
 
269
If no \*(FIfile\*(FR
 
270
is provided, \*(FCgawk\*(FR
 
271
uses \*(FCawkvars.out\*(FR.
 
272
T}
 
273
\*(FC\-\^\-gen\-po\*(FR%T{
 
274
process the program and print a GNU \*(FCgettext\*(FR
 
275
format \*(FC\&.po\*(FR format file on standard output,
 
276
containing the text of all strings that were marked
 
277
for localization.
 
278
T}
 
279
.T&
 
280
ls
 
281
l lw(2.2i).
 
282
\*(FC\-\^\-help\*(FR, \*(FC\-\^\-usage\*(FR
 
283
%T{
245
284
print a short summary of the available
246
285
options on \*(FCstdout\*(FR, then exit zero.
247
286
T}
248
 
\*(FC\-\^\-lint\*(FR
249
 
\*(FC\-W lint\*(FR%T{
 
287
.T&
 
288
ls
 
289
l lw(2.2i).
 
290
\*(FC\-\^\-lint\*(FR[\*(FC=fatal\*(FR]
 
291
%T{
250
292
warn about constructs that are dubious
251
293
or non-portable to other \*(AKs.
 
294
With an optional argument of \*(FCfatal\*(FR,
 
295
lint warnings become fatal errors.
252
296
T}
253
 
\*(FC\-\^\-lint\-old\*(FR
254
 
\*(FC\-W lint\-old\*(FR%T{
 
297
.T&
 
298
l lw(2.2i).
 
299
\*(FC\-\^\-lint\-old\*(FR%T{
255
300
warn about constructs that are not
256
301
portable to the original version of
257
302
Unix \*(AK.
258
303
T}
259
 
\*(FC\-\^\-posix\*(FR
260
 
\*(FC\-W posix\*(FR%T{
 
304
.T&
 
305
ls
 
306
l lw(2.2i).
 
307
\*(FC\-\^\-non\-decimal\-data\*(FR
 
308
%T{
 
309
recognize octal and hexadecimal values in input data.
 
310
\*(FIUse this option with great caution!\*(FR
 
311
T}
 
312
.T&
 
313
l lw(2.2i).
 
314
\*(FC\-\^\-posix\*(FR%T{
261
315
disable common and GNU extensions.
262
316
Enable \*(FIinterval expressions\*(FR in regular
263
317
expression matching (see \fHRegular
264
318
Expressions\fP below).
265
319
T}
 
320
.T&
 
321
ls
 
322
l lw(2.2i).
 
323
\*(FC\-\^\-profile\*(FR[\*(FC=\*(FIprof_file\*(FR]
 
324
%T{
 
325
send profiling data to \*(FIprof_file\*(FR
 
326
(default: \*(FCawkprof.out\*(FR).
 
327
With \*(FIgawk\*(FR,
 
328
the profile is just a ``pretty printed'' version of the program.
 
329
With \*(FIpgawk\*(FR,
 
330
the profile contains execution counts in the left margin
 
331
of each statement in the program.
 
332
T}
 
333
.T&
 
334
ls
 
335
l lw(2.2i).
266
336
\*(FC\-\^\-re\-interval\*(FR
267
 
\*(FC\-W re\-interval\*(FR%T{
 
337
%T{
268
338
enable \*(FIinterval expressions\*(FR in regular
269
339
expression matching (see \fHRegular
270
340
Expressions\fP below). Useful if
271
341
\*(FC\-\^\-posix\*(FR is not specified.
272
342
T}
 
343
.T&
 
344
ls
 
345
l lw(2.2i).
273
346
\*(FC\-\^\-source '\*(FItext\*(FC'\*(FR
274
 
\*(FC\-W source '\*(FItext\*(FC'\*(FR%use \*(FItext\*(FR as AWK program source code.
275
 
\*(FC\-\^\-version\*(FR
276
 
\*(FC\-W version\*(FR%T{
 
347
%use \*(FItext\*(FR as AWK program source code.
 
348
\*(FC\-\^\-version\*(FR%T{
277
349
print version information on \*(FCstdout\fP
278
350
and exit zero.
279
351
T}
281
353
.sp .5
282
354
.fi
283
355
In compatibility mode,
284
 
any other options are flagged as illegal, but are otherwise ignored.
 
356
any other options are flagged as invalid, but are otherwise ignored.
285
357
In normal operation, as long as program text has been supplied, unknown
286
358
options are passed on to the AWK program in
287
359
\*(FCARGV\*(FR
288
360
for processing. This is most useful for running AWK
289
 
programs via the \*(FC#!\*(FR executable interpreter mechanism.\*(CB
 
361
programs via the \*(FC#!\*(FR executable interpreter mechanism.
 
362
.sp .5
 
363
\*(FIpgawk\fP accepts two signals.
 
364
\*(FCSIGUSR1\fP causes it to dump a profile and function call stack to the
 
365
profile file.  It then continues to run.
 
366
\*(FCSIGHUP\fP
 
367
causes it to dump the profile and function call stack and then exit.\*(CB
290
368
.EB "\s+2\f(HBCOMMAND LINE ARGUMENTS (\*(GK\f(HB)\*(FR\s0"
291
369
 
292
370
.BT
293
371
 
 
372
.\"
 
373
.\"
 
374
.\" --- Command Line Arguments (mawk)
294
375
.ES
295
376
.fi
296
377
\*(CDThe following options are specific to \*(MK.
309
390
T}
310
391
\*(FC\-W interactive\*(FR       T{
311
392
unbuffer \*(FCstdout\fP and line buffer \*(FCstdin\fP.
312
 
Lines are always records, ignoring \*(FCRS\fP
 
393
Lines are always records, ignoring \*(FCRS\fP.
313
394
T}
314
395
\*(FC\-W posix_space\*(FR       T{
315
396
\*(FC\en\*(FR separates fields when \*(FCRS = "\^"\fP.
396
477
.\" --- Lines And Statements
397
478
.ES
398
479
.fi
399
 
\*(CDAWK is a line oriented language. The pattern comes first, and then the
 
480
\*(CDAWK is a line-oriented language. The pattern comes first, and then the
400
481
action. Action statements are enclosed in \*(FC{\fP and \*(FC}\*(FR.
401
482
Either the pattern  or the action may be missing, but
402
 
not both. If the pattern is missing, the action will be
 
483
not both. If the pattern is missing, the action is
403
484
executed for every input record.
404
485
A missing action is equivalent to
405
486
.sp .5
421
502
Lines ending in \*(FCdo\fP or \*(FCelse\fP
422
503
also have their statements automatically continued on the following line.
423
504
In other cases, a line can be continued by ending it with a ``\e'',
424
 
in which case the newline will be ignored. However, a ``\e'' after a
 
505
in which case the newline is ignored. However, a ``\e'' after a
425
506
\*(FC#\*(FR is not special.
426
507
.sp .5
427
508
Multiple statements may be put on one line by separating them with a ``;''.
465
546
\*(FC\e>\*(FR~end of a word
466
547
\*(FC\ew\*(FR~any word-constituent character
467
548
\*(FC\eW\*(FR~any non-word-constituent character
468
 
\*(FC\e`\*(FR~beginning of a buffer (string)
469
 
\*(FC\e'\*(FR~end of a buffer (string)\*(CD
 
549
\*(FC\e`\*(FR~beginning of a string
 
550
\*(FC\e'\*(FR~end of a string\*(CD
470
551
\*(FIr\*(FC*\*(FR~zero or more occurrences of \*(FIr\*(FR
471
552
\*(FIr\*(FC+\*(FR~one or more occurrences of \*(FIr\*(FR
472
553
\*(FIr\*(FC?\*(FR~zero or one occurrences of \*(FIr\*(FR
490
571
.fi
491
572
\*(CDIn regular expressions, within character ranges
492
573
(\*(FC[\*(FR...\*(FC]\*(FR),
493
 
the notation \*(FC[[:\*(FIclass\*(FC:]]\*(FR defines characters classes:
 
574
the notation \*(FC[[:\*(FIclass\*(FC:]]\*(FR defines character classes:
494
575
.sp .5
495
576
.TS
496
577
center, tab(~);
500
581
\*(FCblank\*(FR~space or tab~\*(FCpunct\*(FR~punctuation
501
582
\*(FCcntrl\*(FR~control~\*(FCspace\*(FR~whitespace
502
583
\*(FCdigit\*(FR~decimal~\*(FCupper\*(FR~upper-case
503
 
\*(FCgraph\*(FR~non-spaces~\*(FCxdigit\*(FR~hexadecimal\*(CB
 
584
\*(FCgraph\*(FR~non-spaces~\*(FCxdigit\*(FR~hexadecimal
504
585
.TE
505
586
.fi
 
587
.sp .5
 
588
Recognition of these character classes is disabled
 
589
when \*(FC\-\-traditional\*(FR is supplied.\*(CB
506
590
.EB "\s+2\f(HBPOSIX CHARACTER CLASSES (\*(GK\f(HB)\*(FR\s0"
507
591
 
508
592
.\" --- Records
515
599
\*(CLOtherwise, \*(FCRS\fP is a regular expression.
516
600
\*(CR(Not \*(NK.)\*(CL
517
601
Text in the input that matches this
518
 
regular expression will separate the record.
 
602
regular expression separates the record.
519
603
\*(CB\*(GK sets \*(FCRT\*(FR to the value of the
520
604
input text that matched the regular expression.
521
605
The value of \*(FCIGNORECASE\fP
522
 
will also affect how records are separated when
 
606
also affects how records are separated when
523
607
\*(FCRS\fP is a regular expression.\*(CD
524
608
If \*(FCRS\fP is set to the null string,
525
609
then records are separated by one or more blank lines.
529
613
\*(FCFS\fP may have.
530
614
\*(CB\*(MK does not apply exceptional rules to \*(FCFS\fP
531
615
when \*(FCRS = "\^"\fP.\*(CX
532
 
.EB \s+2\f(HBRECORDS\*(FR\s0
 
616
.EB "\s+2\f(HBRECORDS\*(FR\s0"
533
617
 
534
618
.\" --- Fields
535
619
.ES
548
632
\*(CLand/or newlines\*(CD.
549
633
Leading and trailing whitespace are ignored.
550
634
\*(CBThe value of \*(FCIGNORECASE\fP
551
 
will also affect how fields are split when
 
635
also affects how fields are split when
552
636
\*(FCFS\fP is a regular expression.\*(CD
553
637
.sp .5
554
638
\*(CBIf the \*(FCFIELDWIDTHS\fP
555
 
variable is set to a space separated list of numbers, each field is
 
639
variable is set to a space-separated list of numbers, each field is
556
640
expected to have a fixed width, and \*(GK
557
 
will split up the record using the specified widths.
 
641
splits up the record using the specified widths.
558
642
The value of \*(FCFS\fP is ignored.
559
643
Assigning a new value to \*(FCFS\fP
560
644
overrides the use of \*(FCFIELDWIDTHS\*(FR,
570
654
.sp .5
571
655
References to non-existent fields (i.e., fields after \*(FC$NF\*(FR)
572
656
produce the null-string. However, assigning to a non-existent field
573
 
(e.g., \*(FC$(NF+2) = 5\*(FR) will increase the value of
574
 
\*(FCNF\*(FR, create any intervening fields with the null string as their value,
575
 
and cause the value of \*(FC$0\fP
 
657
(e.g., \*(FC$(NF+2) = 5\*(FR) increases the value of
 
658
\*(FCNF\*(FR, creates any intervening fields with the null string as their value,
 
659
and causes the value of \*(FC$0\fP
576
660
to be recomputed with the fields being separated by the
577
661
value of \*(FCOFS\*(FR.
578
662
References to negative numbered fields cause a fatal error.
579
663
Decreasing the value of \*(FCNF\fP causes the trailing fields to be lost
580
664
\*(CR(not \*(NK).\*(CX
581
 
.EB \s+2\f(HBFIELDS\*(FR\s0
 
665
.EB "\s+2\f(HBFIELDS\*(FR\s0"
582
666
 
583
667
.BT
584
668
 
614
698
 
615
699
.\" --- Action Statements
616
700
.ES
617
 
.nf
618
 
\*(CD\*(FCif (\*(FIcondition\*(FC) \*(FIstatement\*(FR [ \*(FCelse\*(FI statement \*(FR]
619
 
\*(FCwhile (\*(FIcondition\*(FC) \*(FIstatement \*(FR
620
 
\*(FCdo \*(FIstatement  \*(FCwhile (\*(FIcondition\*(FC)\*(FR
621
 
\*(FCfor (\*(FIexpr1\*(FC; \*(FIexpr2\*(FC; \*(FIexpr3\*(FC) \*(FIstatement\*(FR
622
 
\*(FCfor (\*(FIvar \*(FCin\*(FI array\*(FC) \*(FIstatement\*(FR
623
 
.ig
624
 
\*(CB\*(FCabort\*(FR [ \*(FIexpression\*(FR ]\*(CD
625
 
..
626
 
\*(FCbreak\*(FR
 
701
.fi
 
702
.in +.2i
 
703
.ti -.2i
 
704
\*(CD\*(FCbreak\*(FR
 
705
.br
 
706
break out of the nearest enclosing \*(FCdo\*(FR, \*(FCfor\*(FR,
 
707
or \*(FCwhile\*(FR loop.
 
708
.ti -.2i
627
709
\*(FCcontinue\*(FR
 
710
.br
 
711
skip the rest of the loop body.
 
712
Evaluate the \*(FIcondition\*(FR
 
713
part of the nearest enclosing \*(FCdo\*(FR or \*(FCwhile\*(FR loop,
 
714
or go to the \*(FIincr\*(FR part of a \*(FCfor\*(FR loop.
 
715
.ti -.2i
628
716
\*(FCdelete \*(FIarray\^\*(FC[\^\*(FIindex\^\*(FC]\*(FR
629
 
\*(CL\*(FCdelete \*(FIarray\^\*(FR\*(CD
 
717
.br
 
718
delete element \*(FIindex\*(FR from array \*(FIarray\*(FR.
 
719
.ti -.2i
 
720
\*(CL\*(FCdelete \*(FIarray\^\*(FR
 
721
.br
 
722
delete all elements from array \*(FIarray\*(FR.\*(CD
 
723
.ti -.2i
 
724
\*(FCdo \*(FIstatement  \*(FCwhile (\*(FIcondition\*(FC)\*(FR
 
725
.br
 
726
execute \*(FIstatement\*(FR while \*(FIcondition\*(FR is true.
 
727
The \*(FIstatement\*(FR is always executed at least once.
 
728
.ti -.2i
630
729
\*(FCexit\*(FR [ \*(FIexpression\*(FR ]
631
 
\*(FCnext\*(FR
632
 
\*(CL\*(FCnextfile\*(FR \*(CR(not \*(MK)\*(CD
633
 
\*(FC{ \*(FIstatements \*(FC}\*(CX
 
730
.br
 
731
terminate input record processing.
 
732
Execute the \*(FCEND\*(FR rule(s) if present.
 
733
If present, \*(FIexpression\*(FR becomes \*(AK's return value.
 
734
.ti -.2i
 
735
\*(FCfor (\*(FIinit\*(FC; \*(FIcond\*(FC; \*(FIincr\*(FC) \*(FIstatement\*(FR
 
736
.br
 
737
execute \*(FIinit\*(FR.
 
738
Evaluate \*(FIcond\*(FR.
 
739
If it is true, execute \*(FIstatement\*(FR.
 
740
Execute \*(FIincr\*(FR before going back to the top to
 
741
re-evaluate \*(FIcond\*(FR.
 
742
Any of the three may be omitted.
 
743
A missing \*(FIcond\*(FR is considered to be true.
 
744
.ti -.2i
 
745
\*(FCfor (\*(FIvar \*(FCin\*(FI array\*(FC) \*(FIstatement\*(FR
 
746
.br
 
747
execute \*(FIstatement\*(FR once for each subscript in \*(FIarray\*(FR,
 
748
with \*(FIvar\*(FR set to a different subscript each time through
 
749
the loop.
 
750
.ti -.2i
 
751
\*(CD\*(FCif (\*(FIcondition\*(FC) \*(FIstatement1\*(FR [ \*(FCelse\*(FI statement2\*(FR ]
 
752
.br
 
753
if \*(FIcondition\*(FR is true, execute \*(FIstatement1\*(FR,
 
754
otherwise execute \*(FIstatement2\*(FR. Each \*(FCelse\*(FR
 
755
matches the closest \*(FCif\*(FR.
 
756
.ti -.2i
 
757
\*(FCnext\*(FR  see \fHInput Control.\fP
 
758
.ti -.2i
 
759
\*(CL\*(FCnextfile\*(FR \*(CR(not \*(MK)        \*(CLsee \fHInput Control.\fP\*(CD
 
760
.ti -.2i
 
761
\*(FCwhile (\*(FIcondition\*(FC) \*(FIstatement \*(FR
 
762
.br
 
763
while \*(FIcondition\*(FR is true, execute \*(FIstatement\*(FR.
 
764
.ti -.2i
 
765
\*(FC{ \*(FIstatements \*(FC}\*(FR
 
766
.br
 
767
a list of statements enclosed in braces can be used anywhere
 
768
that a single statement would otherwise be used.\*(CX
 
769
.in -.2i
634
770
.EB "\s+2\f(HBACTION STATEMENTS\*(FR\s0"
635
771
 
636
772
 
 
773
.BT
637
774
 
638
775
.\" --- Escape Sequences
639
776
.ES
643
780
generate otherwise unprintable characters. This table lists
644
781
the available escape sequences.
645
782
.sp .5
646
 
.ig
647
 
\*(CB\*(FCPROCINFO\fP   T{
648
 
elements of this array provide access to info
649
 
about the running AWK program. See
650
 
\*(AM for details.\*(CD
651
 
T}
652
 
..
653
783
.TS
654
784
center, tab(~);
655
785
lp8 lp8 lp8 lp8.
661
791
\*(FC\e"\fP~double quote~\*(FC\e/\fP~forward slash\*(CX
662
792
.TE
663
793
.EB "\s+2\f(HBESCAPE SEQUENCES\*(FR\s0"
664
 
 
665
 
 
666
 
.BT
667
 
 
 
794
.sp .7
668
795
.\" --- Variables
669
796
.ES
670
797
.fi
671
798
.TS
672
799
expand;
673
800
l lw(2i).
674
 
\*(FCARGC\fP    T{
 
801
\*(CD\*(FCARGC\fP       T{
675
802
number of command line arguments.
676
803
T}
677
804
\*(CB\*(FCARGIND\fP     T{
683
810
contents of \*(FCARGV\fP can control the files used
684
811
for data.
685
812
T}
 
813
\*(CL\*(FCBINMODE\fP    T{
 
814
controls ``binary'' mode for all file I/O.  Values of 1, 2, or 3,
 
815
indicate input, output, or all files, respectively, should use binary
 
816
I/O.  \*(CR(Not \*(NK.)  \*(CLApplies only to non-POSIX systems.
 
817
\*(CBFor \*(GK, string values of \*(FC"r"\fP, or \*(FC"w"\fP specify
 
818
that input files, or output files, respectively, should use binary I/O.
 
819
String values of \*(FC"rw"\fP or \*(FC"wr"\fP specify that all files
 
820
should use binary I/O.  Any other string value is treated as \*(FC"rw"\fP,
 
821
but generates a warning message.\*(CD
 
822
T}
686
823
\*(FCCONVFMT\fP T{
687
824
conversion format for numbers, default value
688
825
is \*(FC"%.6g"\*(FR.
689
826
T}
690
827
\*(FCENVIRON\fP T{
691
 
array containing the the current environment.
 
828
array containing the current environment.
692
829
The array is indexed by the environment
693
830
variables, each element being the value of
694
831
that variable.
695
832
T}
696
833
\*(CB\*(FCERRNO\fP      T{
697
 
contains a string describing the error when a
698
 
redirection or read for \*(FCgetline\*(FR fails, or if
 
834
string describing the error if a
 
835
\*(FCgetline\*(FR
 
836
redirection or read
 
837
fails, or if
699
838
\*(FCclose()\*(FR fails.
700
839
T}
701
840
\*(FCFIELDWIDTHS\fP     T{
710
849
(unless set by \*(FCgetline\fP).
711
850
T}
712
851
\*(FCFNR\fP     T{
713
 
number of the input record in current input file.
 
852
record number in current input file.
714
853
T}
715
854
\*(FCFS\fP      T{
716
855
input field separator, a space by default
718
857
T}
719
858
\*(CB\*(FCIGNORECASE\fP T{
720
859
if non-zero, all regular expression and string
721
 
operations ignore case. \*(CRIn versions of \*(GK
722
 
prior to 3.0, \*(FCIGNORECASE\fP only affected
723
 
regular expression operations and \*(FCindex()\*(FR.\*(CD
 
860
operations ignore case.
 
861
Array subscripting and \*(FCasort()\*(FR are \*(FInot\*(FR affected.
 
862
T}
 
863
\*(CB\*(FCLINT\fP       T{
 
864
provides dynamic control of the \*(FC\-\^\-lint\fP
 
865
option from within an AWK program.
 
866
When true, \*(GK
 
867
prints lint warnings.
 
868
When assigned the string value \*(FC"fatal"\*(FR,
 
869
lint warnings become fatal errors, exactly like
 
870
\*(FC\-\-lint=fatal\*(FR.
 
871
Any other true value just prints warnings.\*(CD
724
872
T}
725
873
\*(FCNF\fP      T{
726
874
number of fields in the current input record.
730
878
T}
731
879
\*(FCOFMT\fP    T{
732
880
output format for numbers, \*(FC"%.6g"\*(FR, by default.
733
 
\*(CROld versions of \*(AK also used this for number
734
 
to string conversion instead of \*(FCCONVFMT\fP.\*(CD
 
881
\*(CROld versions of \*(AK used this for number
 
882
to string conversion.\*(CX
735
883
T}
736
 
\*(FCOFS\fP     T{
 
884
.TE
 
885
.EB "\s+2\f(HBVARIABLES\*(FR\s0"
 
886
.BT
 
887
 
 
888
.\" --- Variables (continued)
 
889
.ES
 
890
.fi
 
891
.TS
 
892
expand;
 
893
l lw(2i).
 
894
\*(CD\*(FCOFS\fP        T{
737
895
output field separator, a space by default.
738
896
T}
739
897
\*(FCORS\fP     T{
740
898
output record separator, a newline by default.
741
899
T}
 
900
\*(CB\*(FCPROCINFO\fP   T{
 
901
elements of this array provide access to info
 
902
about the running AWK program. See
 
903
\*(AM for details.\*(CD
 
904
T}
 
905
\*(FCRLENGTH\fP T{
 
906
length of the string matched by \*(FCmatch()\*(FR;
 
907
\-1 if no match.
 
908
T}
742
909
\*(FCRS\fP      T{
743
910
input record separator, a newline by default
744
911
(see \fHRecords\fP above).
745
912
T}
 
913
\*(FCRSTART\fP  T{
 
914
index of the first character matched by
 
915
\*(FCmatch()\*(FR; 0 if no match.
 
916
T}
746
917
\*(CB\*(FCRT\fP T{
747
918
record terminator. \*(GK sets \*(FCRT\fP to the input
748
919
text that matched the character or regular
749
920
expression specified by \*(FCRS\*(FR.\*(CD
750
921
T}
751
 
\*(FCRSTART\fP  T{
752
 
index of the first character matched by
753
 
\*(FCmatch()\*(FR; 0 if no match.
754
 
T}
755
 
\*(FCRLENGTH\fP T{
756
 
length of the string matched by \*(FCmatch()\*(FR;
757
 
\-1 if no match.
758
 
T}
759
922
\*(FCSUBSEP\fP  T{
760
923
character(s) used to separate multiple subscripts
761
 
in array elements, by default \*(FC"\e034"\*(FR. (see
762
 
\fHArrays\fP below).\*(CX
 
924
in array elements, by default \*(FC"\e034"\*(FR. (See
 
925
\fHArrays\fP below).
 
926
T}
 
927
\*(CB\*(FCTEXTDOMAIN\fP T{
 
928
the application's text domain for internationalization;
 
929
used to find the localized
 
930
translations for the program's strings.\*(CX
763
931
T}
764
932
.TE
765
 
.EB \s+2\f(HBVARIABLES\*(FR\s0
 
933
.EB "\s+2\f(HBVARIABLES (continued)\*(FR\s0"
 
934
 
 
935
.\" --- Conversions and Comparisons
 
936
.ES
 
937
.fi
 
938
\*(CDVariables and fields may be (floating point) numbers, strings or both.
 
939
Context determines how the value of a variable is interpreted. If used in
 
940
a numeric expression, it will be treated as a number, if used as a string
 
941
it will be treated as a string.
 
942
.sp .5
 
943
To force a variable to be treated as a number, add 0 to it; to force it
 
944
to be treated as a string, concatenate it with the null string.
 
945
.sp .5
 
946
When a string must be converted to a number, the conversion is accomplished
 
947
using \*(FIstrtod\*(FR(3).
 
948
A number is converted to a string by using the value of \*(FCCONVFMT\fP
 
949
as a format string for \*(FIsprintf\*(FR(3),
 
950
with the numeric value of the variable as the argument.
 
951
However, even though all numbers in AWK are floating-point,
 
952
integral values are \*(FIalways\fP converted as integers.
 
953
.sp .5
 
954
Comparisons are performed as follows:
 
955
If two variables are numeric, they are compared numerically.
 
956
If one value is numeric and the other has a string value that is a
 
957
``numeric string,'' then comparisons are also done numerically.
 
958
Otherwise, the numeric value is converted to a string, and a string
 
959
comparison is performed.
 
960
Two strings are compared, of course, as strings.
 
961
.sp .5
 
962
Note that string constants, such as \*(FC"57"\fP, are \*(FInot\fP
 
963
numeric strings, they are string constants. The idea of ``numeric string''
 
964
only applies to fields, \*(FCgetline\fP input,
 
965
\*(FCFILENAME\*(FR, \*(FCARGV\fP elements, \*(FCENVIRON\fP
 
966
elements and the elements of an array created by
 
967
\*(FCsplit()\fP that are numeric strings.
 
968
The basic idea is that \*(FIuser input\*(FR,
 
969
and only user input, that looks numeric,
 
970
should be treated that way.
 
971
\*(CRNote that the POSIX standard applies the concept of
 
972
``numeric string'' everywhere, even to string constants.
 
973
However, this is
 
974
clearly incorrect, and none of the three free \*(AK\*(FRs do this.\*(CD
 
975
(Fortunately, this is fixed in the next version of the standard.)
 
976
.sp .5
 
977
Uninitialized variables have the numeric value 0 and the string value
 
978
\*(FC"\^"\fP
 
979
(the null, or empty, string).\*(CX
 
980
.EB "\s+2\f(HBCONVERSIONS AND COMPARISONS\*(FR\s0"
 
981
 
 
982
.BT
 
983
 
 
984
.ES
 
985
\*(CX
 
986
.sp 61
 
987
.EB "\s+2\f(HBNOTES\*(FR\s0"
766
988
 
767
989
.BT
768
990
 
769
991
.\" --- Arrays
770
992
.ES
771
993
.fi
772
 
\*(CDAn arrays subscript is an expression between square brackets
 
994
\*(CDAn array subscript is an expression between square brackets
773
995
(\*(FC[ \*(FRand \*(FC]\*(FR).
774
996
If the expression is a list
775
 
\*(FC(\*(FIexpr\*(FC, \*(FIexpr \*(FC...)\*(FR,
 
997
(\*(FIexpr\*(FC, \*(FIexpr \*(FR...),
776
998
then the subscript is a string consisting of the
777
999
concatenation of the (string) value of each expression,
778
1000
separated by the value of the \*(FCSUBSEP\fP variable.
809
1031
\*(CLSpecifying just the array name without a subscript in
810
1032
the \*(FCdelete\fP
811
1033
statement deletes the entire contents of an array.\*(CX
812
 
.EB \s+2\f(HBARRAYS\*(FR\s0
 
1034
.EB "\s+2\f(HBARRAYS\*(FR\s0"
813
1035
 
814
1036
.\" --- Expressions
815
1037
.ES
833
1055
\*(FCsub()\fP,
834
1056
functions, mean \*(FC$0 ~ /\*(FIpat\*(FC/\*(FR.
835
1057
.sp .5
836
 
The AWK operators, in order of decreasing precedence, are
 
1058
The AWK operators, in order of decreasing precedence, are:
837
1059
.sp .5
838
1060
.fi
839
1061
.TS
864
1086
\*(FC=\0+=\0\-=\0*=\0/=\0%=\0^=\0\*(CL**=\*(CD\fP
865
1087
        assignment operators\*(CX
866
1088
.TE
867
 
.EB \s+2\f(HBEXPRESSIONS\*(FR\s0
868
 
 
869
 
 
870
 
.BT
871
 
 
872
 
.\" --- Conversions and Comparisons
873
 
.ES
874
 
.fi
875
 
\*(CDVariables and fields may be (floating point) numbers, strings or both.
876
 
Context determines how the value of a variable is interpreted. If used in
877
 
a numeric expression, it will be treated as a number, if used as a string
878
 
it will be treated as a string.
879
 
.sp .5
880
 
To force a variable to be treated as a number, add 0 to it; to force it
881
 
to be treated as a string, concatenate it with the null string.
882
 
.sp .5
883
 
When a string must be converted to a number, the conversion is accomplished
884
 
using \*(FIatof\*(FR(3).
885
 
A number is converted to a string by using the value of \*(FCCONVFMT\fP
886
 
as a format string for \*(FIsprintf\*(FR(3),
887
 
with the numeric value of the variable as the argument.
888
 
However, even though all numbers in AWK are floating-point,
889
 
integral values are \*(FIalways\fP converted as integers.
890
 
.sp .5
891
 
Comparisons are performed as follows:
892
 
If two variables are numeric, they are compared numerically.
893
 
If one value is numeric and the other has a string value that is a
894
 
``numeric string,'' then comparisons are also done numerically.
895
 
Otherwise, the numeric value is converted to a string, and a string
896
 
comparison is performed.
897
 
Two strings are compared, of course, as strings.
898
 
\*(CRAccording to the POSIX standard, even if two strings are
899
 
numeric strings, a numeric comparison is performed. However, this is
900
 
clearly incorrect, and none of the three free \*(AK\*(FRs do this.\*(CD
901
 
.sp .5
902
 
Note that string constants, such as \*(FC"57"\fP, are \*(FInot\fP
903
 
numeric strings, they are string constants. The idea of ``numeric string''
904
 
only applies to fields, \*(FCgetline\fP input,
905
 
\*(FCFILENAME\*(FR, \*(FCARGV\fP elements, \*(FCENVIRON\fP
906
 
elements and the elements of an array created by
907
 
\*(FCsplit()\fP that are numeric strings.
908
 
The basic idea is that \*(FIuser input\*(FR,
909
 
and only user input, that looks numeric,
910
 
should be treated that way.
911
 
.sp .5
912
 
Uninitialized variables have the numeric value 0 and the string value
913
 
\*(FC"\^"\fP
914
 
(the null, or empty, string).\*(CX
915
 
.EB "\s+2\f(HBCONVERSIONS AND COMPARISONS\*(FR\s0"
916
 
 
917
 
.ig
918
 
.\" --- Localization
919
 
.ES
920
 
.nf
921
 
.ce 100
922
 
\*(CDThis
923
 
section
924
 
is
925
 
under
926
 
construction.
927
 
.sp .5
928
 
This
929
 
section
930
 
is
931
 
under
932
 
construction.\*(CB
933
 
.ce 0
934
 
.EB "\s+2\f(HBLOCALIZATION\*(FR\s0"
935
 
..
936
 
 
937
 
.ig
938
 
.ps +2
939
 
.ce 1
940
 
\*(CD\fHISBN: 0-916151-97-2\*(FR
941
 
.ps -2
942
 
..
943
 
 
944
 
.BT
945
 
 
 
1089
.EB "\s+2\f(HBEXPRESSIONS\*(FR\s0"
 
1090
 
 
1091
.BT
946
1092
 
947
1093
.\" --- Input Control
948
1094
.ES
950
1096
.TS
951
1097
expand;
952
1098
l lw(1.8i).
953
 
\*(CD\*(FCclose(\*(FIfile\*(FC)\*(FR    close input file or pipe.
954
1099
\*(FCgetline\fP T{
955
 
set \*(FC$0\fP from next input record;
 
1100
set \*(FC$0\fP from next record;
956
1101
set \*(FCNF\*(FR, \*(FCNR\*(FR, \*(FCFNR\*(FR.
957
1102
T}
958
1103
\*(FCgetline < \*(FIfile\*(FR   set \*(FC$0\fP from next record of \*(FIfile\*(FR; set \*(FCNF\*(FR.
963
1108
\*(FCgetline \*(FIv \*(FC< \*(FIfile\*(FR       set \*(FIv\fP from next record of \*(FIfile\*(FR.
964
1109
\*(FIcmd \*(FC| getline\*(FR    pipe into \*(FCgetline\*(FR; set \*(FC$0\*(FR, \*(FCNF\*(FR.
965
1110
\*(FIcmd \*(FC| getline \*(FIv\*(FR     pipe into \*(FCgetline\*(FR; set \*(FIv\*(FR.
 
1111
\*(CB\*(FIcmd \*(FC|& getline\*(FR      co-process pipe into \*(FCgetline\*(FR; set \*(FC$0\*(FR, \*(FCNF\*(FR.
966
1112
.TE
967
1113
.fi
968
1114
.in +.2i
969
1115
.ti -.2i
 
1116
\*(FIcmd \*(FC|& getline \*(FIv\*(FR
 
1117
.br
 
1118
co-process pipe into \*(FCgetline\*(FR; set \*(FIv\*(FR.
 
1119
.ti -.2i
970
1120
\*(FCnext\fP
971
1121
.br
972
1122
stop processing the current input
986
1136
pattern in the AWK program. Upon end
987
1137
of input data, execute any \*(FCEND\fP rule(s).
988
1138
\*(CREarlier versions of \*(GK used
989
 
\*(FCnext file\*(FR, as two words. This
990
 
generates a warning message and will
991
 
eventually be removed. \*(CR\*(MK does not
992
 
currently support \*(FCnextfile\*(FR.\*(CD
 
1139
\*(FCnext file\*(FR, as two words.
 
1140
This usage is no longer supported.
 
1141
\*(CR\*(MK does not currently support \*(FCnextfile\*(FR.\*(CD
993
1142
.in -.2i
994
1143
.sp .5
995
1144
.fi
996
 
\*(FCgetline\*(FR returns 0 on end of file, and \-1 on an
997
 
error.\*(CX
 
1145
\*(FCgetline\*(FR returns 0 on end of file and \-1 on an error.
 
1146
\*(CBUpon an error, \*(FCERRNO\*(FR contains a string describing
 
1147
the problem.\*(CX
998
1148
.EB "\s+2\f(HBINPUT CONTROL\*(FR\s0"
999
1149
 
1000
1150
.\" --- Output Control
1002
1152
.fi
1003
1153
.in +.2i
1004
1154
.ti -.2i
1005
 
\*(CD\*(FCclose(\*(FIfile\*(FC)\*(FR
1006
 
.br
1007
 
close output file or pipe.
1008
 
.ti -.2i
1009
1155
\*(CL\*(FCfflush(\*(FR[\*(FIfile\^\*(FR]\*(FC)\*(FR
1010
1156
.br
1011
1157
flush any buffers associated
1012
1158
with the open output file or pipe \*(FIfile\*(FR.\*(CD
1013
 
\*(CBIf \*(FIfile\fP is missing, then standard output is flushed.
1014
 
If \*(FIfile\fP is the null string, then all open output files and pipes
1015
 
are flushed \*(CR(not \*(NK)\*(CD.
 
1159
\*(CBIf no \*(FIfile\fP, then flush standard output.
 
1160
If \*(FIfile\fP is null, then flush all open output files and pipes
 
1161
\*(CR(not \*(NK)\*(CD.
1016
1162
.ti -.2i
1017
1163
\*(FCprint\fP
1018
1164
.br
1019
 
print the current record. The output record is terminated
1020
 
with the value of \*(FCORS\fP.
 
1165
print the current record. Terminate output record
 
1166
with \*(FCORS\fP.
1021
1167
.ti -.2i
1022
1168
\*(FCprint \*(FIexpr-list\*(FR
1023
1169
.br
1024
1170
print expressions. Each expression is separated
1025
 
by the value of \*(FCOFS\fP. The output record is
1026
 
terminated with the value of \*(FCORS\fP.
 
1171
by the value of \*(FCOFS\fP. Terminate the output record
 
1172
with \*(FCORS\fP.
1027
1173
.ti -.2i
1028
1174
\*(FCprintf \*(FIfmt\*(FC, \*(FIexpr-list\*(FR
1029
1175
.br
1042
1188
.ti -.2i
1043
1189
\*(CD\*(FCprint "hello" > \*(FIfile\*(FR
1044
1190
.br
1045
 
Print data to \*(FIfile\fP. The first time the file is written to, it
1046
 
will be truncated. Subsequent commands append data.
 
1191
print data to \*(FIfile\fP. The first time the file is written to, it
 
1192
is truncated. Subsequent commands append data.
1047
1193
.ti -.2i
1048
1194
\*(FCprint "hello" >> \*(FIfile\*(FR
1049
1195
.br
1050
 
Append data to \*(FIfile\fP. The previous contents of the file are not lost.
 
1196
append data to \*(FIfile\fP. The previous contents of \*(FIfile\*(FR are not lost.
1051
1197
.ti -.2i
1052
1198
\*(FCprint "hello" | \*(FIcmd\*(FR
1053
1199
.br
1054
 
Print data down a pipeline to \*(FIcmd\*(FR.\*(CX
 
1200
print data down a pipeline to \*(FIcmd\*(FR.
 
1201
.ti -.2i
 
1202
\*(CB\*(FCprint "hello" |& \*(FIcmd\*(FR
 
1203
.br
 
1204
print data down a pipeline to co-process \*(FIcmd\*(FR.\*(CX
1055
1205
.in -.2i
1056
1206
.EB "\s+2\f(HBOUTPUT CONTROL\*(FR\s0"
1057
1207
 
 
1208
.ES
 
1209
.fi
 
1210
.in +.2i
 
1211
.ti -.2i
 
1212
\*(CD\*(FCclose(\*(FIfile\*(FC)\*(FR
 
1213
.br
 
1214
close input or output file, pipe \*(CBor co-process.\*(CD
 
1215
.ti -.2i
 
1216
\*(CB\*(FCclose(\*(FIcommand\*(FC, \*(FIhow\*(FC)\*(FR
 
1217
.br
 
1218
close one end of co-process pipe.
 
1219
Use \*(FC"to"\*(FR for the write end, or
 
1220
\*(FC"from"\*(FR for the read end.\*(CD
 
1221
.in -.2i
 
1222
.sp .5
 
1223
On success, \*(FCclose()\*(FR returns zero for a file, or the exit status for a process.
 
1224
It returns \-1 if \*(FIfile\*(FR
 
1225
was never opened, or
 
1226
if there was a system problem.
 
1227
\*(CB\*(FCERRNO\*(FR describes
 
1228
the error.\*(CX
 
1229
.EB "\s+2\f(HBCLOSING REDIRECTIONS\*(FR\s0"
 
1230
 
1058
1231
.BT
1059
1232
 
1060
 
 
1061
1233
.\" --- Printf Formats
1062
1234
.ES
1063
1235
.fi
1091
1263
.TS
1092
1264
expand;
1093
1265
l lw(2.2i).
 
1266
\*(CB\*(FIcount\*(FC$\*(FR      T{
 
1267
use the
 
1268
\*(FIcount\*(FR'th
 
1269
argument at this point in the formatting
 
1270
(a \*(FIpositional specifier\*(FR).
 
1271
Use in translated versions of
 
1272
format strings, not in the original text of an AWK program.\*(CD
 
1273
T}
1094
1274
\*(FC\-\fP      T{
1095
1275
left-justify the expression within its field.
1096
1276
T}
1122
1302
T}
1123
1303
\*(FC0\fP       T{
1124
1304
a leading zero acts as a flag, indicating output
1125
 
should be padded with zeroes instead of spaces.
 
1305
should be padded with zeros instead of spaces.
1126
1306
This applies even to non-numeric output formats.
1127
1307
Only has an effect when the field width is wider
1128
1308
than the value to be printed.
1130
1310
\*(FIwidth\fP   T{
1131
1311
pad the field to this width. The field is normally
1132
1312
padded with spaces. If the \*(FC0\fP flag has been used,
1133
 
pad with zeroes.
 
1313
pad with zeros.
1134
1314
T}
1135
 
\*(FC.\fP\*(FIprec\fP   T{
 
1315
\*(FC.\*(FIprec\*(FR    T{
1136
1316
precision.
1137
 
The meaning varies by control letter:
 
1317
The meaning of the \*(FIprec\*(FR varies by control letter:
1138
1318
T}
1139
1319
 \*(FC%d\*(FR, \*(FC%o\*(FR, \*(FC%i\*(FR,
1140
1320
 \*(FC%u\*(FR, \*(FC%x\*(FR, \*(FC%X\fP T{
1155
1335
The dynamic \*(FIwidth\fP and \*(FIprec\fP capabilities of the ANSI C
1156
1336
\*(FCprintf()\fP routines are supported.
1157
1337
A \*(FC*\fP in place of either the \*(FIwidth\fP or \*(FIprec\fP
1158
 
specifications will cause their values to be taken from
1159
 
the argument list to \*(FCprintf\fP or \*(FCsprintf()\*(FR.\*(CX
 
1338
specifications causes their values to be taken from
 
1339
the argument list to \*(FCprintf\fP or \*(FCsprintf()\*(FR.
 
1340
\*(CBUse \*(FC*\*(FIn\*(FC$\*(FR to use positional specifiers
 
1341
with a dynamic width or precision.\*(CX
1160
1342
.EB "\s+2\f(HBPRINTF FORMATS\*(FR\s0"
1161
1343
 
1162
1344
 
1163
 
 
1164
1345
.BT
1165
1346
 
1166
1347
.\" --- Special Filenames
1187
1368
.fi
1188
1369
\*(CBThe following names are specific to \*(GK.
1189
1370
.sp .5
1190
 
.TS
1191
 
expand;
1192
 
l lw(2i).
1193
 
\*(FC/dev/fd/\^\*(FIn\*(FR      T{
1194
 
file associated with the open file descriptor \*(FIn\*(FR
1195
 
T}
1196
 
.TE
 
1371
.in +.2i
 
1372
.ti -.2i
 
1373
\*(FC/dev/fd/\^\*(FIn\*(FR
 
1374
.br
 
1375
File associated with the open file descriptor \*(FIn\*(FR.
 
1376
.ti -.2i
 
1377
\*(FC/inet/tcp/\*(FIlport\*(FC/\*(FIrhost\*(FC/\*(FIrport\*(FR
 
1378
.br
 
1379
File for TCP/IP connection on local port \*(FIlport\*(FR to
 
1380
remote host \*(FIrhost\*(FR on remote port \*(FIrport\*(FR.
 
1381
Use a port of \*(FC0\*(FR to have the system pick a port.
 
1382
Usable only with the \*(FC|&\*(FR two-way I/O operator.
 
1383
.ti -.2i
 
1384
\*(FC/inet/udp/\*(FIlport\*(FC/\*(FIrhost\*(FC/\*(FIrport\*(FR
 
1385
.br
 
1386
Similar, but use UDP/IP instead of TCP/IP.
 
1387
.ti -.2i
 
1388
\*(CR\*(FC/inet/raw/\*(FIlport\*(FC/\*(FIrhost\*(FC/\*(FIrport\*(FR
 
1389
.br
 
1390
.\" Similar, but use raw IP sockets.
 
1391
Reserved for future use.\*(CB
 
1392
.in -.2i
1197
1393
.sp .5
1198
1394
.fi
1199
1395
Other special filenames provide access to information about the running
1223
1419
.TE
1224
1420
.sp .5
1225
1421
.fi
1226
 
.ig
1227
1422
\*(CRThese filenames are now obsolete.
1228
1423
Use the \*(FCPROCINFO\fP array to obtain the information they provide.\*(CL
1229
 
..
1230
 
.\" BEGIN FOR 3.0.x
1231
 
\*(CRThese filenames will become obsolete in \*(GK 3.1.
1232
 
Be aware that you will have to change your programs.\*(CL
1233
 
.\" END FOR 3.0.x
1234
1424
.EB "\s+2\f(HBSPECIAL FILENAMES\*(FR\s0"
1235
1425
 
1236
 
 
1237
 
 
1238
 
 
1239
1426
.\" --- Builtin Numeric Functions
1240
1427
.ES
1241
1428
.fi
1262
1449
 
1263
1450
.BT
1264
1451
 
1265
 
 
1266
1452
.\" --- Builtin String Functions
1267
1453
.ES
1268
1454
.fi
1269
1455
.in +.2i
1270
1456
.ti -.2i
 
1457
\*(CB\*(FCasort(\*(FIs\*(FC \*(FR[\*(FC, \*(FId\*(FR]\*(FC)\*(FR
 
1458
.br
 
1459
sorts the source array \*(FIs\*(FR, replacing the indices with numeric
 
1460
values 1 through \*(FIn\*(FR (the number of elements in the array),
 
1461
and returns the number of elements.
 
1462
If destination \*(FId\*(FR is supplied, \*(FIs\*(FR is copied to \*(FId\*(FR,
 
1463
\*(FId\*(FR is sorted, and \*(FIs\*(FR is unchanged.\*(CD
 
1464
.ti -.2i
1271
1465
\*(CB\*(FCgensub(\*(FIr\*(FC, \*(FIs\*(FC, \*(FIh \*(FR[\*(FC, \*(FIt\*(FR]\*(FC)\*(FR
1272
1466
.br
1273
1467
search the target string
1274
1468
\*(FIt\fP for matches of the regular expression \*(FIr\*(FR. If
1275
1469
\*(FIh\fP is a string beginning with \*(FCg\fP or \*(FCG\*(FR,
1276
1470
replace all matches of \*(FIr\fP with \*(FIs\*(FR. Otherwise, \*(FIh\fP
1277
 
is a number indicating which match of \*(FIr\fP to replace. If no
1278
 
\*(FIt\fP is supplied, \*(FC$0\fP is used instead. Within the
 
1471
is a number indicating which match of \*(FIr\fP to replace.
 
1472
If \*(FIt\fP is not supplied, \*(FC$0\fP is used instead. Within the
1279
1473
replacement text \*(FIs\*(FR, the sequence \*(FC\e\*(FIn\*(FR,
1280
1474
where \*(FIn\fP is a digit from 1 to 9, may be used to indicate just
1281
1475
the text that matched the \*(FIn\*(FRth parenthesized subexpression.
1306
1500
returns the length of the string
1307
1501
\*(FIs\*(FR, or the length of \*(FC$0\fP if \*(FIs\fP is not supplied.
1308
1502
.ti -.2i
1309
 
\*(FCmatch(\*(FIs\*(FC, \*(FIr\*(FC)\*(FR
 
1503
\*(FCmatch(\*(FIs\*(FC, \*(FIr \*(CB\*(FR[\*(FC, \*(FIa\*(FR]\*(CD\*(FC)\*(FR
1310
1504
.br
1311
1505
returns the position in
1312
1506
\*(FIs\fP where the regular expression \*(FIr\fP occurs, or 0 if
1313
1507
\*(FIr\fP is not present, and sets the values of variables
1314
1508
\*(FCRSTART\fP
1315
1509
and \*(FCRLENGTH\*(FR.
 
1510
\*(CBIf \*(FIa\*(FR is supplied, the text matching all of \*(FIr\*(FR
 
1511
is placed in \*(FIa\*(FC[0]\*(FR.  If there were parenthesized
 
1512
subexpressions, the matching texts are placed
 
1513
in \*(FIa\*(FC[1]\*(FR, \*(FIa\*(FC[2]\*(FR, and so on.\*(CD
1316
1514
.ti -.2i
1317
1515
\*(FCsplit(\*(FIs\*(FC, \*(FIa \*(FR[\*(FC, \*(FIr\*(FR]\*(FC)\*(FR
1318
1516
.br
1328
1526
prints \*(FIexpr-list\fP
1329
1527
according to \*(FIfmt\*(FR, and returns the resulting string.
1330
1528
.ti -.2i
 
1529
\*(CB\*(FCstrtonum(\*(FIs\*(FC)\*(FR
 
1530
.br
 
1531
examines \*(FIs\*(FR, and returns its numeric value.
 
1532
If \*(FIs\*(FR begins with a leading \*(FC0\*(FR,
 
1533
\*(FCstrtonum()\*(FR assumes that \*(FIs\*(FR
 
1534
is an octal number.
 
1535
If \*(FIs\*(FR begins with a leading \*(FC0x\*(FR
 
1536
or \*(FC0X\*(FR, \*(FCstrtonum()\*(FR assumes that
 
1537
\*(FIs\*(FR is a hexadecimal number.\*(CD
 
1538
.ti -.2i
1331
1539
\*(FCsub(\*(FIr\*(FC, \*(FIs \*(FR[\*(FC, \*(FIt\*(FR]\*(FC)\*(FR
1332
1540
.br
1333
1541
just like
1344
1552
returns a copy of the string \*(FIstr\*(FR,
1345
1553
with all the upper-case characters in \*(FIstr\fP translated to their
1346
1554
corresponding lower-case counterparts. Non-alphabetic characters are
1347
 
left unchanged.
 
1555
left unchanged.\*(CX
 
1556
.in -.2i
 
1557
.EB "\s+2\f(HBSTRING FUNCTIONS\*(FR\s0"
 
1558
 
 
1559
.BT
 
1560
 
 
1561
.\" --- Builtin String Functions
 
1562
.ES
 
1563
.fi
 
1564
.in +.2i
1348
1565
.ti -.2i
1349
 
\*(FCtoupper(\*(FIstr\*(FC)\*(FR
 
1566
\*(CD\*(FCtoupper(\*(FIstr\*(FC)\*(FR
1350
1567
.br
1351
1568
returns a copy of the string \*(FIstr\*(FR,
1352
1569
with all the lower-case characters in \*(FIstr\fP translated to their
1353
1570
corresponding upper-case counterparts. Non-alphabetic characters are
1354
1571
left unchanged.\*(CX
1355
1572
.in -.2i
1356
 
.EB "\s+2\f(HBSTRING FUNCTIONS\*(FR\s0"
1357
 
 
1358
 
 
1359
 
 
1360
 
.BT
1361
 
 
 
1573
.EB "\s+2\f(HBSTRING FUNCTIONS (continued)\*(FR\s0"
1362
1574
 
1363
1575
.\" --- Builtin Time Functions
1364
1576
.ES
1369
1581
.sp .5
1370
1582
.fi
1371
1583
.in +.2i
1372
 
.ig
1373
1584
.ti -.2i
1374
1585
\*(FCmktime(\*(FIdatespec\*(FC)\*(FR
1375
1586
.br
1376
1587
turns \*(FIdatespec\fP into a time
1377
1588
stamp of the same form as returned by \*(FCsystime()\*(FR.
1378
1589
The \*(FIdatespec\fP is a string of the form
1379
 
\*(FC"\*(FIYYYY MM DD HH MM SS\*(FC"\*(FR.
1380
 
..
 
1590
\*(FC"\*(FIYYYY MM DD HH MM SS[ DST]\*(FC"\*(FR.
1381
1591
.ti -.2i
1382
1592
\*(FCstrftime(\*(FR[\*(FIformat \*(FR[\*(FC, \*(FItimestamp\*(FR]]\*(FC)\*(FR
1383
1593
.br
1387
1597
\*(FCsystime()\*(FR.
1388
1598
If \*(FItimestamp\fP is missing, the current time of day is used. If
1389
1599
\*(FIformat\fP is missing, a default format equivalent to the output
1390
 
of \*(FIdate\*(FR(1) will be used.
 
1600
of \*(FIdate\*(FR(1) is used.
1391
1601
.ti -.2i
1392
1602
\*(FCsystime()\fP
1393
1603
.br
1396
1606
.in -.2i
1397
1607
.EB "\s+2\f(HBTIME FUNCTIONS (\*(GK\f(HB)\*(FR\s0"
1398
1608
 
1399
 
 
 
1609
.\" --- Builtin Bit Manipulation Functions
 
1610
.ES
 
1611
.fi
 
1612
\*(CD\*(GK
 
1613
provides the following functions for doing bitwise operations.
 
1614
.sp .5
 
1615
.fi
 
1616
.in +.2i
 
1617
.ti -.2i
 
1618
\*(FCand(\*(FIv1\*(FC, \*(FIv2\*(FC)\*(FR
 
1619
.br
 
1620
returns the bitwise AND of the values provided by
 
1621
\*(FIv1\*(FR and \*(FIv2\*(FR.
 
1622
.ti -.2i
 
1623
\*(FCcompl(\*(FIval\*(FC)\*(FR
 
1624
.br
 
1625
returns the bitwise complement of
 
1626
\*(FIval\*(FR.
 
1627
.ti -.2i
 
1628
\*(FClshift(\*(FIval\*(FC, \*(FIcount\*(FC)\*(FR
 
1629
.br
 
1630
returns the value of \*(FIval\*(FR,
 
1631
shifted left by \*(FIcount\*(FR bits.
 
1632
.ti -.2i
 
1633
\*(FCor(\*(FIv1\*(FC, \*(FIv2\*(FC)\*(FR
 
1634
.br
 
1635
returns the bitwise OR of the values provided by
 
1636
\*(FIv1\*(FR and \*(FIv2\*(FR.
 
1637
.ti -.2i
 
1638
\*(FCrshift(\*(FIval\*(FC, \*(FIcount\*(FC)\*(FR
 
1639
.br
 
1640
returns the value of \*(FIval\*(FR,
 
1641
shifted right by \*(FIcount\*(FR bits.
 
1642
.ti -.2i
 
1643
\*(FCxor(\*(FIv1\*(FC, \*(FIv2\*(FC)\*(FR
 
1644
.br
 
1645
teturns the bitwise XOR of the values provided by
 
1646
\*(FIv1\*(FR and \*(FIv2\*(FR.\*(CB
 
1647
.in -.2i
 
1648
.EB "\s+2\f(HBBIT MANIPULATION FUNCTIONS (\*(GK\f(HB)\*(FR\s0"
 
1649
 
 
1650
.\" --- Builtin Internationalizatin Functions
 
1651
.ES
 
1652
.fi
 
1653
\*(CD\*(GK
 
1654
provides the following functions for runtime message translation.
 
1655
.in +.2i
 
1656
.sp .5
 
1657
.ti -.2i
 
1658
\*(FCbindtextdomain(\*(FIdirectory \*(FR[\*(FC, \*(FIdomain\*(FR]\*(FC)\*(FR
 
1659
.br
 
1660
specifies the directory where \*(GK looks for the \*(FC\&.mo\*(FR
 
1661
files, in case they
 
1662
will not or cannot be placed in the ``standard'' locations
 
1663
(e.g., during testing.)
 
1664
It returns the directory where \*(FIdomain\*(FR is ``bound.''
 
1665
.sp .5
 
1666
The default \*(FIdomain\*(FR is the value of \*(FCTEXTDOMAIN\*(FR.
 
1667
When \*(FIdirectory\*(FR is the null string (\*(FC"\^"\*(FR),
 
1668
\*(FCbindtextdomain()\*(FR returns the current binding for the
 
1669
given \*(FIdomain\*(FR.
 
1670
.ti -.2i
 
1671
\*(FCdcgettext(\*(FIstring \*(FR[\*(FC, \*(FIdomain \*(FR[\*(FC, \*(FIcategory\*(FR]]\*(FC)\*(FR
 
1672
.br
 
1673
returns the translation of \*(FIstring\*(FR in text domain
 
1674
\*(FIdomain\*(FR for locale category \*(FIcategory\*(FR.
 
1675
The default value for \*(FIdomain\*(FR is the current value of \*(FCTEXTDOMAIN\*(FR.
 
1676
The default value for \*(FIcategory\*(FR is \*(FC"LC_MESSAGES"\*(FR.
 
1677
.sp .5
 
1678
If you supply a value for \*(FIcategory\*(FR, it must be a string equal to
 
1679
one of the known locale categories.
 
1680
You must also supply a text domain.  Use \*(FCTEXTDOMAIN\*(FR
 
1681
to use the current domain.\*(CB
 
1682
.in -.2i
 
1683
.EB "\s+2\f(HBINTERNATIONALIZATION (\*(GK\f(HB)\*(FR\s0"
 
1684
 
 
1685
.BT
1400
1686
 
1401
1687
.\" --- User-defined Functions
1402
1688
.ES
1420
1706
real parameters by extra spaces in the parameter list. For example:
1421
1707
.sp .5
1422
1708
.nf
1423
 
        \*(FC# a & b are local
 
1709
        \*(FC# a and b are local
1424
1710
        function f(p, q,     a, b)
1425
1711
        {
1426
1712
                \&.....
1450
1736
\*(CRNote: This usage is deprecated.\*(CX
1451
1737
.EB "\s+2\f(HBUSER-DEFINED FUNCTIONS\*(FR\s0"
1452
1738
 
1453
 
 
1454
 
 
1455
 
.\" --- Bug Reports
 
1739
.\" --- Localization
1456
1740
.ES
1457
1741
.fi
1458
 
\*(CDIf you find a bug in this reference card, please report it via electronic
1459
 
mail to \*(FCarnold@gnu.org\*(FR.\*(CX
1460
 
.EB "\s+2\f(HBBUG REPORTS\*(FR\s0"
 
1742
\*(CDThere are several steps involved in producing and running a localizable
 
1743
\*(AK program.
 
1744
.sp .5
 
1745
1.  Add a \*(FCBEGIN\*(FR action to assign a value to the
 
1746
\*(FCTEXTDOMAIN\*(FR variable to set the text domain for
 
1747
your program.
 
1748
.sp .5
 
1749
.ti +5n
 
1750
\*(FCBEGIN { TEXTDOMAIN = "myprog" }\*(FR
 
1751
.sp .5
 
1752
This allows \*(GK to find the \*(FC\&.mo\*(FR
 
1753
file associated with your program.
 
1754
Without this step, \*(GK uses the \*(FCmessages\*(FR text domain,
 
1755
which probably won't work.
 
1756
.sp .5
 
1757
2.  Mark all strings that should be translated with leading underscores.
 
1758
.sp .5
 
1759
3.  Use the \*(FCdcgettext()\*(FR
 
1760
and/or \*(FCbindtextdomain()\*(FR
 
1761
functions in your program, as necessary or appropriate.
 
1762
.sp .5
 
1763
4.  Run
 
1764
.sp .5
 
1765
.ti +5n
 
1766
\*(FCgawk \-\^\-gen\-po \-f myprog.awk > myprog.po\*(FR
 
1767
.sp .5
 
1768
to generate a \*(FC\&.po\*(FR
 
1769
file for your program.
 
1770
.sp .5
 
1771
5.  Provide appropriate translations, and build and install a corresponding
 
1772
\*(FC\&.mo\*(FR file.
 
1773
.sp .5
 
1774
The internationalization features are described in full detail in \*(AM.\*(CB
 
1775
.EB "\s+2\f(HBLOCALIZATION (\*(GK\f(HB)\*(FR\s0"
 
1776
 
1461
1777
 
1462
1778
.BT
1463
1779
 
 
1780
.\" --- Extensions
 
1781
.ES
 
1782
.fi
 
1783
.in +.2i
 
1784
.ti -.2i
 
1785
\*(CD\*(FCextension(\*(FIlib\*(FC, \*(FIfunc\*(FC)\*(FR
 
1786
.br
 
1787
dynamically load the shared library
 
1788
\*(FIlib\*(FR
 
1789
and call
 
1790
\*(FIfunc\*(FR
 
1791
in it to initialize the library.
 
1792
This adds new built-in functions to \*(GK.
 
1793
It returns the value returned by
 
1794
\*(FIfunc\*(FR.\*(CB
 
1795
.in -.2i
 
1796
.EB "\s+2\f(HBDYNAMIC EXTENSIONS (\*(GK\f(HB)\*(FR\s0"
 
1797
 
1464
1798
.\" --- Environment Variables
1465
1799
.ES
1466
1800
.fi
1487
1821
First, it is possible to call the \*(FClength()\fP
1488
1822
built-in function not only with no argument, but even without parentheses.
1489
1823
This feature is marked as ``deprecated'' in the POSIX standard, and \*(GK
1490
 
will issue a warning about its use if \*(FC\-\^\-lint\fP
 
1824
issues a warning about its use if \*(FC\-\^\-lint\fP
1491
1825
is specified on the command line.
1492
1826
.sp .5
1493
1827
The other feature is the use of \*(FCcontinue\fP
1495
1829
\*(FCwhile\*(FR, \*(FCfor\*(FR, or \*(FCdo\fP loop.
1496
1830
Historical AWK implementations have treated such usage as
1497
1831
equivalent to the \*(FCnext\fP statement.
1498
 
\*(GK will support this usage if \*(FC\-\^\-traditional\fP
1499
 
has been specified.\*(CB
 
1832
\*(GK supports this usage if \*(FC\-\^\-traditional\fP
 
1833
is specified.\*(CB
1500
1834
.EB "\s+2\f(HBHISTORICAL FEATURES (\*(GK\f(HB)\*(FR\s0"
1501
1835
 
1502
1836
 
1504
1838
.ES
1505
1839
.nf
1506
1840
\*(CDHost: \*(FCgnudist.gnu.org\*(FR
1507
 
File: \*(FC/gnu/gawk/gawk-3.0.6.tar.gz\fP
 
1841
File: \*(FC/gnu/gawk/gawk-3.1.0.tar.gz\fP
1508
1842
.in +.2i
1509
1843
.fi
1510
1844
GNU \*(AK (\*(GK). There may be a later version.
1511
1845
.in -.2i
1512
1846
.nf
1513
1847
.sp .5
1514
 
Host: \*(FCnetlib.bell-labs.com\*(FR
1515
 
File: \*(FC/netlib/research/awk.bundle.gz\fP
 
1848
\*(FChttp://cm.bell-labs.com/who/bwk/awk.tar.gz\fP
1516
1849
.in +.2i
1517
1850
.fi
1518
1851
\*(NK. This version requires an ANSI C compiler;
1526
1859
.fi
1527
1860
Michael Brennan's \*(MK. There may be a newer version.\*(CX
1528
1861
.in -.2i
1529
 
.EB "\s+2\f(HBFTP INFORMATION\*(FR\s0"
 
1862
.EB "\s+2\f(HBFTP/HTTP INFORMATION\*(FR\s0"
1530
1863
 
1531
1864
.\" --- Copying Permissions
1532
1865
.ES
1533
1866
.fi
1534
 
\*(CDCopyright \(co 1996-2000 Free Software Foundation, Inc.
 
1867
\*(CDCopyright \(co 1996-2001 Free Software Foundation, Inc.
1535
1868
.sp .5   
1536
1869
Permission is granted to make and distribute verbatim copies of this
1537
1870
reference card provided the copyright notice and this permission notice