aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1065
1 files changed, 561 insertions, 504 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index d7442017..6f84e273 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -4044,6 +4044,7 @@ have to be named on the `awk' command line (*note Getline::).
* Command line directories:: What happens if you put a directory on the
command line.
* Input Summary:: Input summary.
+* Input Exercises:: Exercises.

File: gawk.info, Node: Records, Next: Fields, Up: Reading Files
@@ -5854,7 +5855,7 @@ error.
usable data from an `awk' program.

-File: gawk.info, Node: Input Summary, Prev: Command line directories, Up: Reading Files
+File: gawk.info, Node: Input Summary, Next: Input Exercises, Prev: Command line directories, Up: Reading Files
4.12 Summary
============
@@ -5923,6 +5924,25 @@ File: gawk.info, Node: Input Summary, Prev: Command line directories, Up: Rea

+File: gawk.info, Node: Input Exercises, Prev: Input Summary, Up: Reading Files
+
+4.13 Exercises
+==============
+
+ 1. Using the `FIELDWIDTHS' variable (*note Constant Size::), write a
+ program to read election data, where each record represents one
+ voter's votes. Come up with a way to define which columns are
+ associated with each ballot item, and print the total votes,
+ including abstentions, for each item.
+
+ 2. *note Plain Getline::, presented a program to remove C-style
+ comments (`/* ... */') from the input. That program does not work
+ if one comment ends on one line and another one starts later on
+ the same line. Write a program that does handle multiple comments
+ on the line.
+
+
+
File: gawk.info, Node: Printing, Next: Expressions, Prev: Reading Files, Up: Top
5 Printing Output
@@ -5957,6 +5977,7 @@ function.
descriptors.
* Close Files And Pipes:: Closing Input and Output Files and Pipes.
* Output Summary:: Output summary.
+* Output exercises:: Exercises.

File: gawk.info, Node: Print, Next: Print Examples, Up: Printing
@@ -6548,11 +6569,6 @@ be emphasized by storing it in a variable, like this:
printf format, "----", "------" }
{ printf format, $1, $2 }' mail-list
- At this point, it would be a worthwhile exercise to use the `printf'
-statement to line up the headings and table data for the
-`inventory-shipped' example that was covered earlier in the minor node
-on the `print' statement (*note Print::).
-

File: gawk.info, Node: Redirection, Next: Special Files, Prev: Printf, Up: Printing
@@ -7017,7 +7033,7 @@ call. See the system manual pages for information on how to decode this
value.

-File: gawk.info, Node: Output Summary, Prev: Close Files And Pipes, Up: Printing
+File: gawk.info, Node: Output Summary, Next: Output exercises, Prev: Close Files And Pipes, Up: Printing
5.9 Summary
===========
@@ -7043,6 +7059,30 @@ File: gawk.info, Node: Output Summary, Prev: Close Files And Pipes, Up: Print

+File: gawk.info, Node: Output exercises, Prev: Output Summary, Up: Printing
+
+5.10 Exercises
+==============
+
+ 1. Rewrite the program:
+
+ awk 'BEGIN { print "Month Crates"
+ print "----- ------" }
+ { print $1, " ", $2 }' inventory-shipped
+
+ from *note Output Separators::, by using a new value of `OFS'.
+
+ 2. Use the `printf' statement to line up the headings and table data
+ for the `inventory-shipped' example that was covered in *note
+ Print::.
+
+ 3. What happens if you forget the double quotes when redirecting
+ output, as follows:
+
+ BEGIN { print "Serious error detected!" > /dev/stderr }
+
+
+
File: gawk.info, Node: Expressions, Next: Patterns and Actions, Prev: Printing, Up: Top
6 Expressions
@@ -14127,6 +14167,7 @@ for different implementations of `awk' is pretty straightforward.
* Group Functions:: Functions for getting group information.
* Walking Arrays:: A function to walk arrays of arrays.
* Library Functions Summary:: Summary of library functions.
+* Library exercises:: Exercises.
---------- Footnotes ----------
@@ -15012,12 +15053,6 @@ normal case.
end of the command-line arguments. Note that the test in the condition
of the `for' loop uses the `<=' operator, not `<'.
- As an exercise, you might consider whether this same problem can be
-solved without relying on `gawk''s `ARGIND' variable.
-
- As a second exercise, revise this code to handle the case where an
-intervening value in `ARGV' is a variable assignment.
-

File: gawk.info, Node: Ignoring Assigns, Prev: Empty Files, Up: Data File Management
@@ -15886,20 +15921,8 @@ value. Here is a main program to demonstrate:
-| a[2][2] = 22
-| a[3] = 3
- Walking an array and processing each element is a general-purpose
-operation. You might want to consider generalizing the `walk_array()'
-function by adding an additional parameter named `process'.
-
- Then, inside the loop, instead of simply printing the array element's
-index and value, use the indirect function call syntax (*note Indirect
-Calls::) on `process', passing it the index and the value.
-
- When calling `walk_array()', you would pass the name of a
-user-defined function that expects to receive an index and a value, and
-then processes the element.
-

-File: gawk.info, Node: Library Functions Summary, Prev: Walking Arrays, Up: Library Functions
+File: gawk.info, Node: Library Functions Summary, Next: Library exercises, Prev: Walking Arrays, Up: Library Functions
10.8 Summary
============
@@ -15936,6 +15959,37 @@ File: gawk.info, Node: Library Functions Summary, Prev: Walking Arrays, Up: L

+File: gawk.info, Node: Library exercises, Prev: Library Functions Summary, Up: Library Functions
+
+10.9 Exercises
+==============
+
+ 1. In *note Empty Files::, we presented the `zerofile.awk' program,
+ which made use of `gawk''s `ARGIND' variable. Can this problem be
+ solved without relying on `ARGIND'? If so, how?
+
+ 2. As a related challenge, revise that code to handle the case where
+ an intervening value in `ARGV' is a variable assignment.
+
+ 3. *note Walking Arrays::, presented a function that walked a
+ multidimensional array to print it out. However, walking an array
+ and processing each element is a general-purpose operation.
+ Generalize the `walk_array()' function by adding an additional
+ parameter named `process'.
+
+ Then, inside the loop, instead of printing the array element's
+ index and value, use the indirect function call syntax (*note
+ Indirect Calls::) on `process', passing it the index and the value.
+
+ When calling `walk_array()', you would pass the name of a
+ user-defined function that expects to receive an index and a value,
+ and then processes the element.
+
+ Test your new version by printing the array; you should end up with
+ output identical to that of the original version.
+
+
+
File: gawk.info, Node: Sample Programs, Next: Advanced Features, Prev: Library Functions, Up: Top
11 Practical `awk' Programs
@@ -34078,483 +34132,486 @@ Node: Leftmost Longest176321
Node: Computed Regexps177522
Node: Regexp Summary180894
Node: Reading Files182366
-Node: Records184415
-Node: awk split records185158
-Node: gawk split records190016
-Ref: gawk split records-Footnote-1194537
-Node: Fields194574
-Ref: Fields-Footnote-1197538
-Node: Nonconstant Fields197624
-Ref: Nonconstant Fields-Footnote-1199854
-Node: Changing Fields200056
-Node: Field Separators206010
-Node: Default Field Splitting208712
-Node: Regexp Field Splitting209829
-Node: Single Character Fields213170
-Node: Command Line Field Separator214229
-Node: Full Line Fields217571
-Ref: Full Line Fields-Footnote-1218079
-Node: Field Splitting Summary218125
-Ref: Field Splitting Summary-Footnote-1221224
-Node: Constant Size221325
-Node: Splitting By Content225932
-Ref: Splitting By Content-Footnote-1229682
-Node: Multiple Line229722
-Ref: Multiple Line-Footnote-1235578
-Node: Getline235757
-Node: Plain Getline237973
-Node: Getline/Variable240068
-Node: Getline/File241215
-Node: Getline/Variable/File242599
-Ref: Getline/Variable/File-Footnote-1244198
-Node: Getline/Pipe244285
-Node: Getline/Variable/Pipe246984
-Node: Getline/Coprocess248091
-Node: Getline/Variable/Coprocess249343
-Node: Getline Notes250080
-Node: Getline Summary252884
-Ref: table-getline-variants253292
-Node: Read Timeout254204
-Ref: Read Timeout-Footnote-1258031
-Node: Command line directories258089
-Node: Input Summary258993
-Node: Printing262107
-Node: Print263786
-Node: Print Examples265127
-Node: Output Separators267906
-Node: OFMT269922
-Node: Printf271280
-Node: Basic Printf272186
-Node: Control Letters273725
-Node: Format Modifiers277579
-Node: Printf Examples283606
-Node: Redirection286313
-Node: Special Files293285
-Node: Special FD293816
-Ref: Special FD-Footnote-1297440
-Node: Special Network297514
-Node: Special Caveats298364
-Node: Close Files And Pipes299160
-Ref: Close Files And Pipes-Footnote-1306323
-Ref: Close Files And Pipes-Footnote-2306471
-Node: Output Summary306621
-Node: Expressions307593
-Node: Values308778
-Node: Constants309454
-Node: Scalar Constants310134
-Ref: Scalar Constants-Footnote-1310993
-Node: Nondecimal-numbers311243
-Node: Regexp Constants314243
-Node: Using Constant Regexps314718
-Node: Variables317788
-Node: Using Variables318443
-Node: Assignment Options320167
-Node: Conversion322042
-Ref: table-locale-affects327478
-Ref: Conversion-Footnote-1328102
-Node: All Operators328211
-Node: Arithmetic Ops328841
-Node: Concatenation331346
-Ref: Concatenation-Footnote-1334142
-Node: Assignment Ops334262
-Ref: table-assign-ops339245
-Node: Increment Ops340562
-Node: Truth Values and Conditions344000
-Node: Truth Values345083
-Node: Typing and Comparison346132
-Node: Variable Typing346925
-Ref: Variable Typing-Footnote-1350825
-Node: Comparison Operators350947
-Ref: table-relational-ops351357
-Node: POSIX String Comparison354907
-Ref: POSIX String Comparison-Footnote-1355991
-Node: Boolean Ops356129
-Ref: Boolean Ops-Footnote-1360199
-Node: Conditional Exp360290
-Node: Function Calls362017
-Node: Precedence365775
-Node: Locales369444
-Node: Expressions Summary371075
-Node: Patterns and Actions373572
-Node: Pattern Overview374688
-Node: Regexp Patterns376365
-Node: Expression Patterns376908
-Node: Ranges380689
-Node: BEGIN/END383795
-Node: Using BEGIN/END384557
-Ref: Using BEGIN/END-Footnote-1387293
-Node: I/O And BEGIN/END387399
-Node: BEGINFILE/ENDFILE389684
-Node: Empty392615
-Node: Using Shell Variables392932
-Node: Action Overview395215
-Node: Statements397542
-Node: If Statement399390
-Node: While Statement400888
-Node: Do Statement402932
-Node: For Statement404088
-Node: Switch Statement407240
-Node: Break Statement409343
-Node: Continue Statement411398
-Node: Next Statement413191
-Node: Nextfile Statement415581
-Node: Exit Statement418236
-Node: Built-in Variables420640
-Node: User-modified421767
-Ref: User-modified-Footnote-1429452
-Node: Auto-set429514
-Ref: Auto-set-Footnote-1442079
-Ref: Auto-set-Footnote-2442284
-Node: ARGC and ARGV442340
-Node: Pattern Action Summary446194
-Node: Arrays448417
-Node: Array Basics449966
-Node: Array Intro450792
-Ref: figure-array-elements452765
-Node: Reference to Elements455172
-Node: Assigning Elements457445
-Node: Array Example457936
-Node: Scanning an Array459668
-Node: Controlling Scanning462683
-Ref: Controlling Scanning-Footnote-1467856
-Node: Delete468172
-Ref: Delete-Footnote-1470937
-Node: Numeric Array Subscripts470994
-Node: Uninitialized Subscripts473177
-Node: Multidimensional474802
-Node: Multiscanning477895
-Node: Arrays of Arrays479484
-Node: Arrays Summary484147
-Node: Functions486252
-Node: Built-in487125
-Node: Calling Built-in488203
-Node: Numeric Functions490191
-Ref: Numeric Functions-Footnote-1494025
-Ref: Numeric Functions-Footnote-2494382
-Ref: Numeric Functions-Footnote-3494430
-Node: String Functions494699
-Ref: String Functions-Footnote-1517710
-Ref: String Functions-Footnote-2517839
-Ref: String Functions-Footnote-3518087
-Node: Gory Details518174
-Ref: table-sub-escapes519843
-Ref: table-sub-posix-92521197
-Ref: table-sub-proposed522548
-Ref: table-posix-sub523902
-Ref: table-gensub-escapes525447
-Ref: Gory Details-Footnote-1526623
-Ref: Gory Details-Footnote-2526674
-Node: I/O Functions526825
-Ref: I/O Functions-Footnote-1533948
-Node: Time Functions534095
-Ref: Time Functions-Footnote-1544559
-Ref: Time Functions-Footnote-2544627
-Ref: Time Functions-Footnote-3544785
-Ref: Time Functions-Footnote-4544896
-Ref: Time Functions-Footnote-5545008
-Ref: Time Functions-Footnote-6545235
-Node: Bitwise Functions545501
-Ref: table-bitwise-ops546063
-Ref: Bitwise Functions-Footnote-1550308
-Node: Type Functions550492
-Node: I18N Functions551634
-Node: User-defined553279
-Node: Definition Syntax554083
-Ref: Definition Syntax-Footnote-1559008
-Node: Function Example559077
-Ref: Function Example-Footnote-1561721
-Node: Function Caveats561743
-Node: Calling A Function562261
-Node: Variable Scope563216
-Node: Pass By Value/Reference566204
-Node: Return Statement569712
-Node: Dynamic Typing572696
-Node: Indirect Calls573625
-Node: Functions Summary583338
-Node: Library Functions585877
-Ref: Library Functions-Footnote-1589452
-Ref: Library Functions-Footnote-2589595
-Node: Library Names589766
-Ref: Library Names-Footnote-1593239
-Ref: Library Names-Footnote-2593459
-Node: General Functions593545
-Node: Strtonum Function594573
-Node: Assert Function597353
-Node: Round Function600679
-Node: Cliff Random Function602220
-Node: Ordinal Functions603236
-Ref: Ordinal Functions-Footnote-1606313
-Ref: Ordinal Functions-Footnote-2606565
-Node: Join Function606776
-Ref: Join Function-Footnote-1608547
-Node: Getlocaltime Function608747
-Node: Readfile Function612483
-Node: Data File Management614322
-Node: Filetrans Function614954
-Node: Rewind Function619023
-Node: File Checking620410
-Ref: File Checking-Footnote-1621542
-Node: Empty Files621743
-Node: Ignoring Assigns623973
-Node: Getopt Function625527
-Ref: Getopt Function-Footnote-1636830
-Node: Passwd Functions637033
-Ref: Passwd Functions-Footnote-1646012
-Node: Group Functions646100
-Ref: Group Functions-Footnote-1654042
-Node: Walking Arrays654255
-Node: Library Functions Summary656425
-Node: Sample Programs657787
-Node: Running Examples658514
-Node: Clones659242
-Node: Cut Program660466
-Node: Egrep Program670334
-Ref: Egrep Program-Footnote-1678305
-Node: Id Program678415
-Node: Split Program682079
-Ref: Split Program-Footnote-1685617
-Node: Tee Program685745
-Node: Uniq Program688552
-Node: Wc Program695982
-Ref: Wc Program-Footnote-1700250
-Ref: Wc Program-Footnote-2700450
-Node: Miscellaneous Programs700542
-Node: Dupword Program701755
-Node: Alarm Program703786
-Node: Translate Program708600
-Ref: Translate Program-Footnote-1712991
-Ref: Translate Program-Footnote-2713261
-Node: Labels Program713395
-Ref: Labels Program-Footnote-1716766
-Node: Word Sorting716850
-Node: History Sorting720893
-Node: Extract Program722729
-Ref: Extract Program-Footnote-1730304
-Node: Simple Sed730433
-Node: Igawk Program733495
-Ref: Igawk Program-Footnote-1748671
-Ref: Igawk Program-Footnote-2748872
-Node: Anagram Program749010
-Node: Signature Program752078
-Node: Programs Summary753325
-Node: Advanced Features754513
-Node: Nondecimal Data756461
-Node: Array Sorting758038
-Node: Controlling Array Traversal758735
-Node: Array Sorting Functions767015
-Ref: Array Sorting Functions-Footnote-1770922
-Node: Two-way I/O771116
-Ref: Two-way I/O-Footnote-1776632
-Node: TCP/IP Networking776714
-Node: Profiling779558
-Node: Advanced Features Summary787100
-Node: Internationalization788964
-Node: I18N and L10N790444
-Node: Explaining gettext791130
-Ref: Explaining gettext-Footnote-1796270
-Ref: Explaining gettext-Footnote-2796454
-Node: Programmer i18n796619
-Node: Translator i18n800844
-Node: String Extraction801638
-Ref: String Extraction-Footnote-1802599
-Node: Printf Ordering802685
-Ref: Printf Ordering-Footnote-1805467
-Node: I18N Portability805531
-Ref: I18N Portability-Footnote-1807980
-Node: I18N Example808043
-Ref: I18N Example-Footnote-1810765
-Node: Gawk I18N810837
-Node: I18N Summary811475
-Node: Debugger812814
-Node: Debugging813836
-Node: Debugging Concepts814277
-Node: Debugging Terms816133
-Node: Awk Debugging818730
-Node: Sample Debugging Session819622
-Node: Debugger Invocation820142
-Node: Finding The Bug821475
-Node: List of Debugger Commands827957
-Node: Breakpoint Control829289
-Node: Debugger Execution Control832953
-Node: Viewing And Changing Data836313
-Node: Execution Stack839671
-Node: Debugger Info841184
-Node: Miscellaneous Debugger Commands845178
-Node: Readline Support850362
-Node: Limitations851254
-Node: Debugging Summary853528
-Node: Arbitrary Precision Arithmetic854692
-Ref: Arbitrary Precision Arithmetic-Footnote-1856341
-Node: General Arithmetic856489
-Node: Floating Point Issues858209
-Node: String Conversion Precision859090
-Ref: String Conversion Precision-Footnote-1860795
-Node: Unexpected Results860904
-Node: POSIX Floating Point Problems863057
-Ref: POSIX Floating Point Problems-Footnote-1866878
-Node: Integer Programming866916
-Node: Floating-point Programming868727
-Ref: Floating-point Programming-Footnote-1875055
-Ref: Floating-point Programming-Footnote-2875325
-Node: Floating-point Representation875589
-Node: Floating-point Context876754
-Ref: table-ieee-formats877593
-Node: Rounding Mode878977
-Ref: table-rounding-modes879456
-Ref: Rounding Mode-Footnote-1882471
-Node: Gawk and MPFR882650
-Node: Arbitrary Precision Floats884059
-Ref: Arbitrary Precision Floats-Footnote-1886502
-Node: Setting Precision886823
-Ref: table-predefined-precision-strings887507
-Node: Setting Rounding Mode889652
-Ref: table-gawk-rounding-modes890056
-Node: Floating-point Constants891243
-Node: Changing Precision892695
-Ref: Changing Precision-Footnote-1894087
-Node: Exact Arithmetic894261
-Node: Arbitrary Precision Integers897395
-Ref: Arbitrary Precision Integers-Footnote-1900410
-Node: Dynamic Extensions900557
-Node: Extension Intro902066
-Node: Plugin License903331
-Node: Extension Mechanism Outline904016
-Ref: figure-load-extension904440
-Ref: figure-load-new-function905925
-Ref: figure-call-new-function906927
-Node: Extension API Description908911
-Node: Extension API Functions Introduction910361
-Node: General Data Types915226
-Ref: General Data Types-Footnote-1920919
-Node: Requesting Values921218
-Ref: table-value-types-returned921955
-Node: Memory Allocation Functions922913
-Ref: Memory Allocation Functions-Footnote-1925660
-Node: Constructor Functions925756
-Node: Registration Functions927514
-Node: Extension Functions928199
-Node: Exit Callback Functions930501
-Node: Extension Version String931750
-Node: Input Parsers932400
-Node: Output Wrappers942203
-Node: Two-way processors946719
-Node: Printing Messages948923
-Ref: Printing Messages-Footnote-1950000
-Node: Updating `ERRNO'950152
-Node: Accessing Parameters950891
-Node: Symbol Table Access952121
-Node: Symbol table by name952635
-Node: Symbol table by cookie954611
-Ref: Symbol table by cookie-Footnote-1958744
-Node: Cached values958807
-Ref: Cached values-Footnote-1962311
-Node: Array Manipulation962402
-Ref: Array Manipulation-Footnote-1963500
-Node: Array Data Types963539
-Ref: Array Data Types-Footnote-1966242
-Node: Array Functions966334
-Node: Flattening Arrays970208
-Node: Creating Arrays977060
-Node: Extension API Variables981791
-Node: Extension Versioning982427
-Node: Extension API Informational Variables984328
-Node: Extension API Boilerplate985414
-Node: Finding Extensions989218
-Node: Extension Example989778
-Node: Internal File Description990508
-Node: Internal File Ops994599
-Ref: Internal File Ops-Footnote-11006145
-Node: Using Internal File Ops1006285
-Ref: Using Internal File Ops-Footnote-11008632
-Node: Extension Samples1008900
-Node: Extension Sample File Functions1010424
-Node: Extension Sample Fnmatch1017992
-Node: Extension Sample Fork1019473
-Node: Extension Sample Inplace1020686
-Node: Extension Sample Ord1022466
-Node: Extension Sample Readdir1023302
-Ref: table-readdir-file-types1024158
-Node: Extension Sample Revout1024957
-Node: Extension Sample Rev2way1025548
-Node: Extension Sample Read write array1026289
-Node: Extension Sample Readfile1028168
-Node: Extension Sample API Tests1029268
-Node: Extension Sample Time1029793
-Node: gawkextlib1031108
-Node: Extension summary1033921
-Node: Language History1037586
-Node: V7/SVR3.11039229
-Node: SVR41041549
-Node: POSIX1042991
-Node: BTL1044377
-Node: POSIX/GNU1045111
-Node: Feature History1050710
-Node: Common Extensions1063822
-Node: Ranges and Locales1065134
-Ref: Ranges and Locales-Footnote-11069751
-Ref: Ranges and Locales-Footnote-21069778
-Ref: Ranges and Locales-Footnote-31070012
-Node: Contributors1070233
-Node: History summary1075695
-Node: Installation1077064
-Node: Gawk Distribution1078015
-Node: Getting1078499
-Node: Extracting1079325
-Node: Distribution contents1080967
-Node: Unix Installation1086684
-Node: Quick Installation1087301
-Node: Additional Configuration Options1089743
-Node: Configuration Philosophy1091481
-Node: Non-Unix Installation1093832
-Node: PC Installation1094290
-Node: PC Binary Installation1095601
-Node: PC Compiling1097449
-Ref: PC Compiling-Footnote-11100448
-Node: PC Testing1100553
-Node: PC Using1101729
-Node: Cygwin1105887
-Node: MSYS1106696
-Node: VMS Installation1107210
-Node: VMS Compilation1108006
-Ref: VMS Compilation-Footnote-11109228
-Node: VMS Dynamic Extensions1109286
-Node: VMS Installation Details1110659
-Node: VMS Running1112911
-Node: VMS GNV1115745
-Node: VMS Old Gawk1116468
-Node: Bugs1116938
-Node: Other Versions1120942
-Node: Installation summary1127196
-Node: Notes1128251
-Node: Compatibility Mode1129116
-Node: Additions1129898
-Node: Accessing The Source1130823
-Node: Adding Code1132259
-Node: New Ports1138437
-Node: Derived Files1142918
-Ref: Derived Files-Footnote-11147999
-Ref: Derived Files-Footnote-21148033
-Ref: Derived Files-Footnote-31148629
-Node: Future Extensions1148743
-Node: Implementation Limitations1149349
-Node: Extension Design1150597
-Node: Old Extension Problems1151751
-Ref: Old Extension Problems-Footnote-11153268
-Node: Extension New Mechanism Goals1153325
-Ref: Extension New Mechanism Goals-Footnote-11156685
-Node: Extension Other Design Decisions1156874
-Node: Extension Future Growth1158980
-Node: Old Extension Mechanism1159816
-Node: Notes summary1161578
-Node: Basic Concepts1162763
-Node: Basic High Level1163444
-Ref: figure-general-flow1163716
-Ref: figure-process-flow1164315
-Ref: Basic High Level-Footnote-11167544
-Node: Basic Data Typing1167729
-Node: Glossary1171056
-Node: Copying1196208
-Node: GNU Free Documentation License1233764
-Node: Index1258900
+Node: Records184458
+Node: awk split records185201
+Node: gawk split records190059
+Ref: gawk split records-Footnote-1194580
+Node: Fields194617
+Ref: Fields-Footnote-1197581
+Node: Nonconstant Fields197667
+Ref: Nonconstant Fields-Footnote-1199897
+Node: Changing Fields200099
+Node: Field Separators206053
+Node: Default Field Splitting208755
+Node: Regexp Field Splitting209872
+Node: Single Character Fields213213
+Node: Command Line Field Separator214272
+Node: Full Line Fields217614
+Ref: Full Line Fields-Footnote-1218122
+Node: Field Splitting Summary218168
+Ref: Field Splitting Summary-Footnote-1221267
+Node: Constant Size221368
+Node: Splitting By Content225975
+Ref: Splitting By Content-Footnote-1229725
+Node: Multiple Line229765
+Ref: Multiple Line-Footnote-1235621
+Node: Getline235800
+Node: Plain Getline238016
+Node: Getline/Variable240111
+Node: Getline/File241258
+Node: Getline/Variable/File242642
+Ref: Getline/Variable/File-Footnote-1244241
+Node: Getline/Pipe244328
+Node: Getline/Variable/Pipe247027
+Node: Getline/Coprocess248134
+Node: Getline/Variable/Coprocess249386
+Node: Getline Notes250123
+Node: Getline Summary252927
+Ref: table-getline-variants253335
+Node: Read Timeout254247
+Ref: Read Timeout-Footnote-1258074
+Node: Command line directories258132
+Node: Input Summary259036
+Node: Input Exercises262174
+Node: Printing262907
+Node: Print264630
+Node: Print Examples265971
+Node: Output Separators268750
+Node: OFMT270766
+Node: Printf272124
+Node: Basic Printf273030
+Node: Control Letters274569
+Node: Format Modifiers278423
+Node: Printf Examples284450
+Node: Redirection286914
+Node: Special Files293886
+Node: Special FD294417
+Ref: Special FD-Footnote-1298041
+Node: Special Network298115
+Node: Special Caveats298965
+Node: Close Files And Pipes299761
+Ref: Close Files And Pipes-Footnote-1306924
+Ref: Close Files And Pipes-Footnote-2307072
+Node: Output Summary307222
+Node: Output exercises308219
+Node: Expressions308899
+Node: Values310084
+Node: Constants310760
+Node: Scalar Constants311440
+Ref: Scalar Constants-Footnote-1312299
+Node: Nondecimal-numbers312549
+Node: Regexp Constants315549
+Node: Using Constant Regexps316024
+Node: Variables319094
+Node: Using Variables319749
+Node: Assignment Options321473
+Node: Conversion323348
+Ref: table-locale-affects328784
+Ref: Conversion-Footnote-1329408
+Node: All Operators329517
+Node: Arithmetic Ops330147
+Node: Concatenation332652
+Ref: Concatenation-Footnote-1335448
+Node: Assignment Ops335568
+Ref: table-assign-ops340551
+Node: Increment Ops341868
+Node: Truth Values and Conditions345306
+Node: Truth Values346389
+Node: Typing and Comparison347438
+Node: Variable Typing348231
+Ref: Variable Typing-Footnote-1352131
+Node: Comparison Operators352253
+Ref: table-relational-ops352663
+Node: POSIX String Comparison356213
+Ref: POSIX String Comparison-Footnote-1357297
+Node: Boolean Ops357435
+Ref: Boolean Ops-Footnote-1361505
+Node: Conditional Exp361596
+Node: Function Calls363323
+Node: Precedence367081
+Node: Locales370750
+Node: Expressions Summary372381
+Node: Patterns and Actions374878
+Node: Pattern Overview375994
+Node: Regexp Patterns377671
+Node: Expression Patterns378214
+Node: Ranges381995
+Node: BEGIN/END385101
+Node: Using BEGIN/END385863
+Ref: Using BEGIN/END-Footnote-1388599
+Node: I/O And BEGIN/END388705
+Node: BEGINFILE/ENDFILE390990
+Node: Empty393921
+Node: Using Shell Variables394238
+Node: Action Overview396521
+Node: Statements398848
+Node: If Statement400696
+Node: While Statement402194
+Node: Do Statement404238
+Node: For Statement405394
+Node: Switch Statement408546
+Node: Break Statement410649
+Node: Continue Statement412704
+Node: Next Statement414497
+Node: Nextfile Statement416887
+Node: Exit Statement419542
+Node: Built-in Variables421946
+Node: User-modified423073
+Ref: User-modified-Footnote-1430758
+Node: Auto-set430820
+Ref: Auto-set-Footnote-1443385
+Ref: Auto-set-Footnote-2443590
+Node: ARGC and ARGV443646
+Node: Pattern Action Summary447500
+Node: Arrays449723
+Node: Array Basics451272
+Node: Array Intro452098
+Ref: figure-array-elements454071
+Node: Reference to Elements456478
+Node: Assigning Elements458751
+Node: Array Example459242
+Node: Scanning an Array460974
+Node: Controlling Scanning463989
+Ref: Controlling Scanning-Footnote-1469162
+Node: Delete469478
+Ref: Delete-Footnote-1472243
+Node: Numeric Array Subscripts472300
+Node: Uninitialized Subscripts474483
+Node: Multidimensional476108
+Node: Multiscanning479201
+Node: Arrays of Arrays480790
+Node: Arrays Summary485453
+Node: Functions487558
+Node: Built-in488431
+Node: Calling Built-in489509
+Node: Numeric Functions491497
+Ref: Numeric Functions-Footnote-1495331
+Ref: Numeric Functions-Footnote-2495688
+Ref: Numeric Functions-Footnote-3495736
+Node: String Functions496005
+Ref: String Functions-Footnote-1519016
+Ref: String Functions-Footnote-2519145
+Ref: String Functions-Footnote-3519393
+Node: Gory Details519480
+Ref: table-sub-escapes521149
+Ref: table-sub-posix-92522503
+Ref: table-sub-proposed523854
+Ref: table-posix-sub525208
+Ref: table-gensub-escapes526753
+Ref: Gory Details-Footnote-1527929
+Ref: Gory Details-Footnote-2527980
+Node: I/O Functions528131
+Ref: I/O Functions-Footnote-1535254
+Node: Time Functions535401
+Ref: Time Functions-Footnote-1545865
+Ref: Time Functions-Footnote-2545933
+Ref: Time Functions-Footnote-3546091
+Ref: Time Functions-Footnote-4546202
+Ref: Time Functions-Footnote-5546314
+Ref: Time Functions-Footnote-6546541
+Node: Bitwise Functions546807
+Ref: table-bitwise-ops547369
+Ref: Bitwise Functions-Footnote-1551614
+Node: Type Functions551798
+Node: I18N Functions552940
+Node: User-defined554585
+Node: Definition Syntax555389
+Ref: Definition Syntax-Footnote-1560314
+Node: Function Example560383
+Ref: Function Example-Footnote-1563027
+Node: Function Caveats563049
+Node: Calling A Function563567
+Node: Variable Scope564522
+Node: Pass By Value/Reference567510
+Node: Return Statement571018
+Node: Dynamic Typing574002
+Node: Indirect Calls574931
+Node: Functions Summary584644
+Node: Library Functions587183
+Ref: Library Functions-Footnote-1590801
+Ref: Library Functions-Footnote-2590944
+Node: Library Names591115
+Ref: Library Names-Footnote-1594588
+Ref: Library Names-Footnote-2594808
+Node: General Functions594894
+Node: Strtonum Function595922
+Node: Assert Function598702
+Node: Round Function602028
+Node: Cliff Random Function603569
+Node: Ordinal Functions604585
+Ref: Ordinal Functions-Footnote-1607662
+Ref: Ordinal Functions-Footnote-2607914
+Node: Join Function608125
+Ref: Join Function-Footnote-1609896
+Node: Getlocaltime Function610096
+Node: Readfile Function613832
+Node: Data File Management615671
+Node: Filetrans Function616303
+Node: Rewind Function620372
+Node: File Checking621759
+Ref: File Checking-Footnote-1622891
+Node: Empty Files623092
+Node: Ignoring Assigns625071
+Node: Getopt Function626625
+Ref: Getopt Function-Footnote-1637928
+Node: Passwd Functions638131
+Ref: Passwd Functions-Footnote-1647110
+Node: Group Functions647198
+Ref: Group Functions-Footnote-1655140
+Node: Walking Arrays655353
+Node: Library Functions Summary656956
+Node: Library exercises658344
+Node: Sample Programs659624
+Node: Running Examples660351
+Node: Clones661079
+Node: Cut Program662303
+Node: Egrep Program672171
+Ref: Egrep Program-Footnote-1680142
+Node: Id Program680252
+Node: Split Program683916
+Ref: Split Program-Footnote-1687454
+Node: Tee Program687582
+Node: Uniq Program690389
+Node: Wc Program697819
+Ref: Wc Program-Footnote-1702087
+Ref: Wc Program-Footnote-2702287
+Node: Miscellaneous Programs702379
+Node: Dupword Program703592
+Node: Alarm Program705623
+Node: Translate Program710437
+Ref: Translate Program-Footnote-1714828
+Ref: Translate Program-Footnote-2715098
+Node: Labels Program715232
+Ref: Labels Program-Footnote-1718603
+Node: Word Sorting718687
+Node: History Sorting722730
+Node: Extract Program724566
+Ref: Extract Program-Footnote-1732141
+Node: Simple Sed732270
+Node: Igawk Program735332
+Ref: Igawk Program-Footnote-1750508
+Ref: Igawk Program-Footnote-2750709
+Node: Anagram Program750847
+Node: Signature Program753915
+Node: Programs Summary755162
+Node: Advanced Features756350
+Node: Nondecimal Data758298
+Node: Array Sorting759875
+Node: Controlling Array Traversal760572
+Node: Array Sorting Functions768852
+Ref: Array Sorting Functions-Footnote-1772759
+Node: Two-way I/O772953
+Ref: Two-way I/O-Footnote-1778469
+Node: TCP/IP Networking778551
+Node: Profiling781395
+Node: Advanced Features Summary788937
+Node: Internationalization790801
+Node: I18N and L10N792281
+Node: Explaining gettext792967
+Ref: Explaining gettext-Footnote-1798107
+Ref: Explaining gettext-Footnote-2798291
+Node: Programmer i18n798456
+Node: Translator i18n802681
+Node: String Extraction803475
+Ref: String Extraction-Footnote-1804436
+Node: Printf Ordering804522
+Ref: Printf Ordering-Footnote-1807304
+Node: I18N Portability807368
+Ref: I18N Portability-Footnote-1809817
+Node: I18N Example809880
+Ref: I18N Example-Footnote-1812602
+Node: Gawk I18N812674
+Node: I18N Summary813312
+Node: Debugger814651
+Node: Debugging815673
+Node: Debugging Concepts816114
+Node: Debugging Terms817970
+Node: Awk Debugging820567
+Node: Sample Debugging Session821459
+Node: Debugger Invocation821979
+Node: Finding The Bug823312
+Node: List of Debugger Commands829794
+Node: Breakpoint Control831126
+Node: Debugger Execution Control834790
+Node: Viewing And Changing Data838150
+Node: Execution Stack841508
+Node: Debugger Info843021
+Node: Miscellaneous Debugger Commands847015
+Node: Readline Support852199
+Node: Limitations853091
+Node: Debugging Summary855365
+Node: Arbitrary Precision Arithmetic856529
+Ref: Arbitrary Precision Arithmetic-Footnote-1858178
+Node: General Arithmetic858326
+Node: Floating Point Issues860046
+Node: String Conversion Precision860927
+Ref: String Conversion Precision-Footnote-1862632
+Node: Unexpected Results862741
+Node: POSIX Floating Point Problems864894
+Ref: POSIX Floating Point Problems-Footnote-1868715
+Node: Integer Programming868753
+Node: Floating-point Programming870564
+Ref: Floating-point Programming-Footnote-1876892
+Ref: Floating-point Programming-Footnote-2877162
+Node: Floating-point Representation877426
+Node: Floating-point Context878591
+Ref: table-ieee-formats879430
+Node: Rounding Mode880814
+Ref: table-rounding-modes881293
+Ref: Rounding Mode-Footnote-1884308
+Node: Gawk and MPFR884487
+Node: Arbitrary Precision Floats885896
+Ref: Arbitrary Precision Floats-Footnote-1888339
+Node: Setting Precision888660
+Ref: table-predefined-precision-strings889344
+Node: Setting Rounding Mode891489
+Ref: table-gawk-rounding-modes891893
+Node: Floating-point Constants893080
+Node: Changing Precision894532
+Ref: Changing Precision-Footnote-1895924
+Node: Exact Arithmetic896098
+Node: Arbitrary Precision Integers899232
+Ref: Arbitrary Precision Integers-Footnote-1902247
+Node: Dynamic Extensions902394
+Node: Extension Intro903903
+Node: Plugin License905168
+Node: Extension Mechanism Outline905853
+Ref: figure-load-extension906277
+Ref: figure-load-new-function907762
+Ref: figure-call-new-function908764
+Node: Extension API Description910748
+Node: Extension API Functions Introduction912198
+Node: General Data Types917063
+Ref: General Data Types-Footnote-1922756
+Node: Requesting Values923055
+Ref: table-value-types-returned923792
+Node: Memory Allocation Functions924750
+Ref: Memory Allocation Functions-Footnote-1927497
+Node: Constructor Functions927593
+Node: Registration Functions929351
+Node: Extension Functions930036
+Node: Exit Callback Functions932338
+Node: Extension Version String933587
+Node: Input Parsers934237
+Node: Output Wrappers944040
+Node: Two-way processors948556
+Node: Printing Messages950760
+Ref: Printing Messages-Footnote-1951837
+Node: Updating `ERRNO'951989
+Node: Accessing Parameters952728
+Node: Symbol Table Access953958
+Node: Symbol table by name954472
+Node: Symbol table by cookie956448
+Ref: Symbol table by cookie-Footnote-1960581
+Node: Cached values960644
+Ref: Cached values-Footnote-1964148
+Node: Array Manipulation964239
+Ref: Array Manipulation-Footnote-1965337
+Node: Array Data Types965376
+Ref: Array Data Types-Footnote-1968079
+Node: Array Functions968171
+Node: Flattening Arrays972045
+Node: Creating Arrays978897
+Node: Extension API Variables983628
+Node: Extension Versioning984264
+Node: Extension API Informational Variables986165
+Node: Extension API Boilerplate987251
+Node: Finding Extensions991055
+Node: Extension Example991615
+Node: Internal File Description992345
+Node: Internal File Ops996436
+Ref: Internal File Ops-Footnote-11007982
+Node: Using Internal File Ops1008122
+Ref: Using Internal File Ops-Footnote-11010469
+Node: Extension Samples1010737
+Node: Extension Sample File Functions1012261
+Node: Extension Sample Fnmatch1019829
+Node: Extension Sample Fork1021310
+Node: Extension Sample Inplace1022523
+Node: Extension Sample Ord1024303
+Node: Extension Sample Readdir1025139
+Ref: table-readdir-file-types1025995
+Node: Extension Sample Revout1026794
+Node: Extension Sample Rev2way1027385
+Node: Extension Sample Read write array1028126
+Node: Extension Sample Readfile1030005
+Node: Extension Sample API Tests1031105
+Node: Extension Sample Time1031630
+Node: gawkextlib1032945
+Node: Extension summary1035758
+Node: Language History1039423
+Node: V7/SVR3.11041066
+Node: SVR41043386
+Node: POSIX1044828
+Node: BTL1046214
+Node: POSIX/GNU1046948
+Node: Feature History1052547
+Node: Common Extensions1065659
+Node: Ranges and Locales1066971
+Ref: Ranges and Locales-Footnote-11071588
+Ref: Ranges and Locales-Footnote-21071615
+Ref: Ranges and Locales-Footnote-31071849
+Node: Contributors1072070
+Node: History summary1077532
+Node: Installation1078901
+Node: Gawk Distribution1079852
+Node: Getting1080336
+Node: Extracting1081162
+Node: Distribution contents1082804
+Node: Unix Installation1088521
+Node: Quick Installation1089138
+Node: Additional Configuration Options1091580
+Node: Configuration Philosophy1093318
+Node: Non-Unix Installation1095669
+Node: PC Installation1096127
+Node: PC Binary Installation1097438
+Node: PC Compiling1099286
+Ref: PC Compiling-Footnote-11102285
+Node: PC Testing1102390
+Node: PC Using1103566
+Node: Cygwin1107724
+Node: MSYS1108533
+Node: VMS Installation1109047
+Node: VMS Compilation1109843
+Ref: VMS Compilation-Footnote-11111065
+Node: VMS Dynamic Extensions1111123
+Node: VMS Installation Details1112496
+Node: VMS Running1114748
+Node: VMS GNV1117582
+Node: VMS Old Gawk1118305
+Node: Bugs1118775
+Node: Other Versions1122779
+Node: Installation summary1129033
+Node: Notes1130088
+Node: Compatibility Mode1130953
+Node: Additions1131735
+Node: Accessing The Source1132660
+Node: Adding Code1134096
+Node: New Ports1140274
+Node: Derived Files1144755
+Ref: Derived Files-Footnote-11149836
+Ref: Derived Files-Footnote-21149870
+Ref: Derived Files-Footnote-31150466
+Node: Future Extensions1150580
+Node: Implementation Limitations1151186
+Node: Extension Design1152434
+Node: Old Extension Problems1153588
+Ref: Old Extension Problems-Footnote-11155105
+Node: Extension New Mechanism Goals1155162
+Ref: Extension New Mechanism Goals-Footnote-11158522
+Node: Extension Other Design Decisions1158711
+Node: Extension Future Growth1160817
+Node: Old Extension Mechanism1161653
+Node: Notes summary1163415
+Node: Basic Concepts1164600
+Node: Basic High Level1165281
+Ref: figure-general-flow1165553
+Ref: figure-process-flow1166152
+Ref: Basic High Level-Footnote-11169381
+Node: Basic Data Typing1169566
+Node: Glossary1172893
+Node: Copying1198045
+Node: GNU Free Documentation License1235601
+Node: Index1260737

End Tag Table