diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1155 |
1 files changed, 579 insertions, 576 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index aacd68ed..513be76b 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -5586,98 +5586,102 @@ each of the lines into fields in the normal manner. This happens by default as the result of a special feature. When 'RS' is set to the empty string _and_ 'FS' is set to a single character, the newline character _always_ acts as a field separator. This is in addition to -whatever field separations result from 'FS'.(1) - - The original motivation for this special exception was probably to -provide useful behavior in the default case (i.e., 'FS' is equal to -'" "'). This feature can be a problem if you really don't want the -newline character to separate fields, because there is no way to prevent -it. However, you can work around this by using the 'split()' function -to break up the record manually (*note String Functions::). If you have -a single-character field separator, you can work around the special -feature in a different way, by making 'FS' into a regexp for that single -character. For example, if the field separator is a percent character, -instead of 'FS = "%"', use 'FS = "[%]"'. - - Another way to separate fields is to put each field on a separate -line: to do this, just set the variable 'FS' to the string '"\n"'. -(This single-character separator matches a single newline.) A practical -example of a data file organized this way might be a mailing list, where -blank lines separate the entries. Consider a mailing list in a file -named 'addresses', which looks like this: - - Jane Doe - 123 Main Street - Anywhere, SE 12345-6789 - - John Smith - 456 Tree-lined Avenue - Smallville, MW 98765-4321 - ... - -A simple program to process this file is as follows: - - # addrs.awk --- simple mailing list program +whatever field separations result from 'FS'. + + NOTE: When 'FS' is the null string ('""') or a regexp, this special + feature of 'RS' does not apply. It does apply to the default field + separator of a single space: 'FS = " "'. + + Note that language in the POSIX specification implies that this + special feature should apply when 'FS' is a regexp. However, Unix + 'awk' has never behaved that way, nor has 'gawk'. This is + essentially a bug in POSIX. + + The original motivation for this special exception was probably to + provide useful behavior in the default case (i.e., 'FS' is equal to + '" "'). This feature can be a problem if you really don't want the + newline character to separate fields, because there is no way to + prevent it. However, you can work around this by using the + 'split()' function to break up the record manually (*note String + Functions::). If you have a single-character field separator, you + can work around the special feature in a different way, by making + 'FS' into a regexp for that single character. For example, if the + field separator is a percent character, instead of 'FS = "%"', use + 'FS = "[%]"'. + + Another way to separate fields is to put each field on a separate + line: to do this, just set the variable 'FS' to the string '"\n"'. + (This single-character separator matches a single newline.) A + practical example of a data file organized this way might be a + mailing list, where blank lines separate the entries. Consider a + mailing list in a file named 'addresses', which looks like this: + + Jane Doe + 123 Main Street + Anywhere, SE 12345-6789 + + John Smith + 456 Tree-lined Avenue + Smallville, MW 98765-4321 + ... - # Records are separated by blank lines. - # Each line is one field. - BEGIN { RS = "" ; FS = "\n" } + A simple program to process this file is as follows: - { - print "Name is:", $1 - print "Address is:", $2 - print "City and State are:", $3 - print "" - } + # addrs.awk --- simple mailing list program - Running the program produces the following output: + # Records are separated by blank lines. + # Each line is one field. + BEGIN { RS = "" ; FS = "\n" } - $ awk -f addrs.awk addresses - -| Name is: Jane Doe - -| Address is: 123 Main Street - -| City and State are: Anywhere, SE 12345-6789 - -| - -| Name is: John Smith - -| Address is: 456 Tree-lined Avenue - -| City and State are: Smallville, MW 98765-4321 - -| - ... + { + print "Name is:", $1 + print "Address is:", $2 + print "City and State are:", $3 + print "" + } - *Note Labels Program:: for a more realistic program dealing with -address lists. The following list summarizes how records are split, -based on the value of 'RS'. ('==' means "is equal to.") + Running the program produces the following output: -'RS == "\n"' - Records are separated by the newline character ('\n'). In effect, - every line in the data file is a separate record, including blank - lines. This is the default. + $ awk -f addrs.awk addresses + -| Name is: Jane Doe + -| Address is: 123 Main Street + -| City and State are: Anywhere, SE 12345-6789 + -| + -| Name is: John Smith + -| Address is: 456 Tree-lined Avenue + -| City and State are: Smallville, MW 98765-4321 + -| + ... -'RS == ANY SINGLE CHARACTER' - Records are separated by each occurrence of the character. - Multiple successive occurrences delimit empty records. + *Note Labels Program:: for a more realistic program dealing with + address lists. The following list summarizes how records are + split, based on the value of 'RS'. ('==' means "is equal to.") -'RS == ""' - Records are separated by runs of blank lines. When 'FS' is a - single character, then the newline character always serves as a - field separator, in addition to whatever value 'FS' may have. - Leading and trailing newlines in a file are ignored. + 'RS == "\n"' + Records are separated by the newline character ('\n'). In + effect, every line in the data file is a separate record, + including blank lines. This is the default. -'RS == REGEXP' - Records are separated by occurrences of characters that match - REGEXP. Leading and trailing matches of REGEXP delimit empty - records. (This is a 'gawk' extension; it is not specified by the - POSIX standard.) + 'RS == ANY SINGLE CHARACTER' + Records are separated by each occurrence of the character. + Multiple successive occurrences delimit empty records. - If not in compatibility mode (*note Options::), 'gawk' sets 'RT' to -the input text that matched the value specified by 'RS'. But if the -input file ended without any text that matches 'RS', then 'gawk' sets -'RT' to the null string. + 'RS == ""' + Records are separated by runs of blank lines. When 'FS' is a + single character, then the newline character always serves as + a field separator, in addition to whatever value 'FS' may + have. Leading and trailing newlines in a file are ignored. - ---------- Footnotes ---------- + 'RS == REGEXP' + Records are separated by occurrences of characters that match + REGEXP. Leading and trailing matches of REGEXP delimit empty + records. (This is a 'gawk' extension; it is not specified by + the POSIX standard.) - (1) When 'FS' is the null string ('""') or a regexp, this special -feature of 'RS' does not apply. It does apply to the default field -separator of a single space: 'FS = " "'. + If not in compatibility mode (*note Options::), 'gawk' sets 'RT' to + the input text that matched the value specified by 'RS'. But if + the input file ended without any text that matches 'RS', then + 'gawk' sets 'RT' to the null string. File: gawk.info, Node: Getline, Next: Read Timeout, Prev: Multiple Line, Up: Reading Files @@ -34786,7 +34790,7 @@ Index * differences in awk and gawk, RS/RT variables <1>: gawk split records. (line 58) * differences in awk and gawk, RS/RT variables <2>: Multiple Line. - (line 130) + (line 140) * differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 348) * differences in awk and gawk, single-character fields: Single Character Fields. (line 6) @@ -35314,7 +35318,7 @@ Index (line 136) * gawk, RT variable in: awk split records. (line 131) * gawk, RT variable in <1>: gawk split records. (line 58) -* gawk, RT variable in <2>: Multiple Line. (line 130) +* gawk, RT variable in <2>: Multiple Line. (line 140) * gawk, RT variable in <3>: Auto-set. (line 348) * gawk, See Also awk: Preface. (line 34) * gawk, source code, obtaining: Getting. (line 6) @@ -36348,7 +36352,7 @@ Index * RSTART variable, match() function and: String Functions. (line 228) * RT variable: awk split records. (line 131) * RT variable <1>: gawk split records. (line 58) -* RT variable <2>: Multiple Line. (line 130) +* RT variable <2>: Multiple Line. (line 140) * RT variable <3>: Auto-set. (line 348) * Rubin, Paul: History. (line 30) * Rubin, Paul <1>: Contributors. (line 16) @@ -36980,498 +36984,497 @@ Node: Splitting By Content243260 Ref: Splitting By Content-Footnote-1246910 Node: Testing field creation247073 Node: Multiple Line248698 -Ref: Multiple Line-Footnote-1254582 -Node: Getline254761 -Node: Plain Getline257230 -Node: Getline/Variable259871 -Node: Getline/File261022 -Node: Getline/Variable/File262410 -Ref: Getline/Variable/File-Footnote-1264015 -Node: Getline/Pipe264103 -Node: Getline/Variable/Pipe266810 -Node: Getline/Coprocess267945 -Node: Getline/Variable/Coprocess269212 -Node: Getline Notes269954 -Node: Getline Summary272751 -Ref: table-getline-variants273175 -Node: Read Timeout273923 -Ref: Read Timeout-Footnote-1277829 -Node: Retrying Input277887 -Node: Command-line directories279086 -Node: Input Summary279992 -Node: Input Exercises283164 -Node: Printing283892 -Node: Print285726 -Node: Print Examples287183 -Node: Output Separators289963 -Node: OFMT291980 -Node: Printf293336 -Node: Basic Printf294121 -Node: Control Letters295695 -Node: Format Modifiers300859 -Node: Printf Examples306874 -Node: Redirection309360 -Node: Special FD316201 -Ref: Special FD-Footnote-1319369 -Node: Special Files319443 -Node: Other Inherited Files320060 -Node: Special Network321061 -Node: Special Caveats321921 -Node: Close Files And Pipes322870 -Ref: table-close-pipe-return-values329777 -Ref: Close Files And Pipes-Footnote-1330590 -Ref: Close Files And Pipes-Footnote-2330738 -Node: Nonfatal330890 -Node: Output Summary333228 -Node: Output Exercises334450 -Node: Expressions335129 -Node: Values336317 -Node: Constants336995 -Node: Scalar Constants337686 -Ref: Scalar Constants-Footnote-1340210 -Node: Nondecimal-numbers340460 -Node: Regexp Constants343461 -Node: Using Constant Regexps343987 -Node: Standard Regexp Constants344609 -Node: Strong Regexp Constants347797 -Node: Variables350755 -Node: Using Variables351412 -Node: Assignment Options353322 -Node: Conversion355789 -Node: Strings And Numbers356313 -Ref: Strings And Numbers-Footnote-1359376 -Node: Locale influences conversions359485 -Ref: table-locale-affects362243 -Node: All Operators362861 -Node: Arithmetic Ops363490 -Node: Concatenation365996 -Ref: Concatenation-Footnote-1368843 -Node: Assignment Ops368950 -Ref: table-assign-ops373941 -Node: Increment Ops375254 -Node: Truth Values and Conditions378714 -Node: Truth Values379788 -Node: Typing and Comparison380836 -Node: Variable Typing381656 -Ref: Variable Typing-Footnote-1388119 -Ref: Variable Typing-Footnote-2388191 -Node: Comparison Operators388268 -Ref: table-relational-ops388687 -Node: POSIX String Comparison392182 -Ref: POSIX String Comparison-Footnote-1393877 -Ref: POSIX String Comparison-Footnote-2394016 -Node: Boolean Ops394100 -Ref: Boolean Ops-Footnote-1398582 -Node: Conditional Exp398674 -Node: Function Calls400410 -Node: Precedence404287 -Node: Locales407946 -Node: Expressions Summary409578 -Node: Patterns and Actions412151 -Node: Pattern Overview413271 -Node: Regexp Patterns414948 -Node: Expression Patterns415490 -Node: Ranges419271 -Node: BEGIN/END422379 -Node: Using BEGIN/END423140 -Ref: Using BEGIN/END-Footnote-1425876 -Node: I/O And BEGIN/END425982 -Node: BEGINFILE/ENDFILE428296 -Node: Empty431209 -Node: Using Shell Variables431526 -Node: Action Overview433800 -Node: Statements436125 -Node: If Statement437973 -Node: While Statement439468 -Node: Do Statement441496 -Node: For Statement442644 -Node: Switch Statement445815 -Node: Break Statement448201 -Node: Continue Statement450293 -Node: Next Statement452120 -Node: Nextfile Statement454503 -Node: Exit Statement457155 -Node: Built-in Variables459558 -Node: User-modified460691 -Node: Auto-set468458 -Ref: Auto-set-Footnote-1485265 -Ref: Auto-set-Footnote-2485471 -Node: ARGC and ARGV485527 -Node: Pattern Action Summary489740 -Node: Arrays492170 -Node: Array Basics493499 -Node: Array Intro494343 -Ref: figure-array-elements496318 -Ref: Array Intro-Footnote-1499022 -Node: Reference to Elements499150 -Node: Assigning Elements501614 -Node: Array Example502105 -Node: Scanning an Array503864 -Node: Controlling Scanning506886 -Ref: Controlling Scanning-Footnote-1512285 -Node: Numeric Array Subscripts512601 -Node: Uninitialized Subscripts514785 -Node: Delete516404 -Ref: Delete-Footnote-1519156 -Node: Multidimensional519213 -Node: Multiscanning522308 -Node: Arrays of Arrays523899 -Node: Arrays Summary528667 -Node: Functions530760 -Node: Built-in531798 -Node: Calling Built-in532879 -Node: Numeric Functions534875 -Ref: Numeric Functions-Footnote-1538903 -Ref: Numeric Functions-Footnote-2539548 -Ref: Numeric Functions-Footnote-3539596 -Node: String Functions539868 -Ref: String Functions-Footnote-1563726 -Ref: String Functions-Footnote-2563854 -Ref: String Functions-Footnote-3564102 -Node: Gory Details564189 -Ref: table-sub-escapes565980 -Ref: table-sub-proposed567499 -Ref: table-posix-sub568862 -Ref: table-gensub-escapes570403 -Ref: Gory Details-Footnote-1571226 -Node: I/O Functions571380 -Ref: table-system-return-values577848 -Ref: I/O Functions-Footnote-1579928 -Ref: I/O Functions-Footnote-2580076 -Node: Time Functions580196 -Ref: Time Functions-Footnote-1590867 -Ref: Time Functions-Footnote-2590935 -Ref: Time Functions-Footnote-3591093 -Ref: Time Functions-Footnote-4591204 -Ref: Time Functions-Footnote-5591316 -Ref: Time Functions-Footnote-6591543 -Node: Bitwise Functions591809 -Ref: table-bitwise-ops592403 -Ref: Bitwise Functions-Footnote-1598466 -Ref: Bitwise Functions-Footnote-2598639 -Node: Type Functions598830 -Node: I18N Functions601581 -Node: User-defined603232 -Node: Definition Syntax604044 -Ref: Definition Syntax-Footnote-1609731 -Node: Function Example609802 -Ref: Function Example-Footnote-1612724 -Node: Function Calling612746 -Node: Calling A Function613334 -Node: Variable Scope614292 -Node: Pass By Value/Reference617286 -Node: Function Caveats619930 -Ref: Function Caveats-Footnote-1621977 -Node: Return Statement622097 -Node: Dynamic Typing625076 -Node: Indirect Calls626006 -Ref: Indirect Calls-Footnote-1636258 -Node: Functions Summary636386 -Node: Library Functions639091 -Ref: Library Functions-Footnote-1642698 -Ref: Library Functions-Footnote-2642841 -Node: Library Names643012 -Ref: Library Names-Footnote-1646679 -Ref: Library Names-Footnote-2646902 -Node: General Functions646988 -Node: Strtonum Function648091 -Node: Assert Function651113 -Node: Round Function654439 -Node: Cliff Random Function655979 -Node: Ordinal Functions656995 -Ref: Ordinal Functions-Footnote-1660058 -Ref: Ordinal Functions-Footnote-2660310 -Node: Join Function660520 -Ref: Join Function-Footnote-1662290 -Node: Getlocaltime Function662490 -Node: Readfile Function666232 -Node: Shell Quoting668209 -Node: Data File Management669610 -Node: Filetrans Function670242 -Node: Rewind Function674338 -Node: File Checking676247 -Ref: File Checking-Footnote-1677581 -Node: Empty Files677782 -Node: Ignoring Assigns679761 -Node: Getopt Function681311 -Ref: Getopt Function-Footnote-1692780 -Node: Passwd Functions692980 -Ref: Passwd Functions-Footnote-1701819 -Node: Group Functions701907 -Ref: Group Functions-Footnote-1709805 -Node: Walking Arrays710012 -Node: Library Functions Summary713020 -Node: Library Exercises714426 -Node: Sample Programs714891 -Node: Running Examples715661 -Node: Clones716389 -Node: Cut Program717613 -Node: Egrep Program727542 -Ref: Egrep Program-Footnote-1735054 -Node: Id Program735164 -Node: Split Program738844 -Ref: Split Program-Footnote-1742302 -Node: Tee Program742431 -Node: Uniq Program745221 -Node: Wc Program752842 -Ref: Wc Program-Footnote-1757097 -Node: Miscellaneous Programs757191 -Node: Dupword Program758404 -Node: Alarm Program760434 -Node: Translate Program765289 -Ref: Translate Program-Footnote-1769854 -Node: Labels Program770124 -Ref: Labels Program-Footnote-1773475 -Node: Word Sorting773559 -Node: History Sorting777631 -Node: Extract Program779466 -Node: Simple Sed787520 -Node: Igawk Program790594 -Ref: Igawk Program-Footnote-1804925 -Ref: Igawk Program-Footnote-2805127 -Ref: Igawk Program-Footnote-3805249 -Node: Anagram Program805364 -Node: Signature Program808426 -Node: Programs Summary809673 -Node: Programs Exercises810887 -Ref: Programs Exercises-Footnote-1815016 -Node: Advanced Features815107 -Node: Nondecimal Data817097 -Node: Array Sorting818688 -Node: Controlling Array Traversal819388 -Ref: Controlling Array Traversal-Footnote-1827756 -Node: Array Sorting Functions827874 -Ref: Array Sorting Functions-Footnote-1832965 -Node: Two-way I/O833161 -Ref: Two-way I/O-Footnote-1840882 -Ref: Two-way I/O-Footnote-2841069 -Node: TCP/IP Networking841151 -Node: Profiling844269 -Node: Advanced Features Summary853287 -Node: Internationalization855131 -Node: I18N and L10N856611 -Node: Explaining gettext857298 -Ref: Explaining gettext-Footnote-1863190 -Ref: Explaining gettext-Footnote-2863375 -Node: Programmer i18n863540 -Ref: Programmer i18n-Footnote-1868489 -Node: Translator i18n868538 -Node: String Extraction869332 -Ref: String Extraction-Footnote-1870464 -Node: Printf Ordering870550 -Ref: Printf Ordering-Footnote-1873336 -Node: I18N Portability873400 -Ref: I18N Portability-Footnote-1875856 -Node: I18N Example875919 -Ref: I18N Example-Footnote-1879194 -Ref: I18N Example-Footnote-2879267 -Node: Gawk I18N879376 -Node: I18N Summary880025 -Node: Debugger881366 -Node: Debugging882366 -Node: Debugging Concepts882807 -Node: Debugging Terms884616 -Node: Awk Debugging887191 -Ref: Awk Debugging-Footnote-1888136 -Node: Sample Debugging Session888268 -Node: Debugger Invocation888802 -Node: Finding The Bug890188 -Node: List of Debugger Commands896662 -Node: Breakpoint Control897995 -Node: Debugger Execution Control901689 -Node: Viewing And Changing Data905051 -Node: Execution Stack908592 -Node: Debugger Info910229 -Node: Miscellaneous Debugger Commands914300 -Node: Readline Support919362 -Node: Limitations920258 -Node: Debugging Summary922812 -Node: Namespaces924091 -Node: Global Namespace925170 -Node: Qualified Names926568 -Node: Default Namespace927567 -Node: Changing The Namespace928308 -Node: Naming Rules929922 -Node: Internal Name Management931770 -Node: Namespace Example932812 -Node: Namespace And Features935374 -Node: Namespace Summary936809 -Node: Arbitrary Precision Arithmetic938286 -Node: Computer Arithmetic939773 -Ref: table-numeric-ranges943539 -Ref: table-floating-point-ranges944032 -Ref: Computer Arithmetic-Footnote-1944690 -Node: Math Definitions944747 -Ref: table-ieee-formats948063 -Ref: Math Definitions-Footnote-1948666 -Node: MPFR features948771 -Node: FP Math Caution950489 -Ref: FP Math Caution-Footnote-1951561 -Node: Inexactness of computations951930 -Node: Inexact representation952890 -Node: Comparing FP Values954250 -Node: Errors accumulate955491 -Node: Getting Accuracy956924 -Node: Try To Round959634 -Node: Setting precision960533 -Ref: table-predefined-precision-strings961230 -Node: Setting the rounding mode963060 -Ref: table-gawk-rounding-modes963434 -Ref: Setting the rounding mode-Footnote-1967365 -Node: Arbitrary Precision Integers967544 -Ref: Arbitrary Precision Integers-Footnote-1970719 -Node: Checking for MPFR970868 -Node: POSIX Floating Point Problems972342 -Ref: POSIX Floating Point Problems-Footnote-1976627 -Node: Floating point summary976665 -Node: Dynamic Extensions978855 -Node: Extension Intro980408 -Node: Plugin License981674 -Node: Extension Mechanism Outline982471 -Ref: figure-load-extension982910 -Ref: figure-register-new-function984475 -Ref: figure-call-new-function985567 -Node: Extension API Description987629 -Node: Extension API Functions Introduction989271 -Ref: table-api-std-headers991107 -Node: General Data Types994972 -Ref: General Data Types-Footnote-11003333 -Node: Memory Allocation Functions1003632 -Ref: Memory Allocation Functions-Footnote-11007842 -Node: Constructor Functions1007941 -Node: Registration Functions1011527 -Node: Extension Functions1012212 -Node: Exit Callback Functions1017534 -Node: Extension Version String1018784 -Node: Input Parsers1019447 -Node: Output Wrappers1032168 -Node: Two-way processors1036680 -Node: Printing Messages1038945 -Ref: Printing Messages-Footnote-11040116 -Node: Updating ERRNO1040269 -Node: Requesting Values1041008 -Ref: table-value-types-returned1041745 -Node: Accessing Parameters1042681 -Node: Symbol Table Access1043916 -Node: Symbol table by name1044428 -Ref: Symbol table by name-Footnote-11047452 -Node: Symbol table by cookie1047580 -Ref: Symbol table by cookie-Footnote-11051765 -Node: Cached values1051829 -Ref: Cached values-Footnote-11055365 -Node: Array Manipulation1055518 -Ref: Array Manipulation-Footnote-11056609 -Node: Array Data Types1056646 -Ref: Array Data Types-Footnote-11059304 -Node: Array Functions1059396 -Node: Flattening Arrays1063894 -Node: Creating Arrays1070870 -Node: Redirection API1075637 -Node: Extension API Variables1078470 -Node: Extension Versioning1079181 -Ref: gawk-api-version1079610 -Node: Extension GMP/MPFR Versioning1081341 -Node: Extension API Informational Variables1082969 -Node: Extension API Boilerplate1084042 -Node: Changes from API V11088016 -Node: Finding Extensions1089588 -Node: Extension Example1090147 -Node: Internal File Description1090945 -Node: Internal File Ops1095025 -Ref: Internal File Ops-Footnote-11106375 -Node: Using Internal File Ops1106515 -Ref: Using Internal File Ops-Footnote-11108898 -Node: Extension Samples1109172 -Node: Extension Sample File Functions1110701 -Node: Extension Sample Fnmatch1118350 -Node: Extension Sample Fork1119837 -Node: Extension Sample Inplace1121055 -Node: Extension Sample Ord1124359 -Node: Extension Sample Readdir1125195 -Ref: table-readdir-file-types1126084 -Node: Extension Sample Revout1126889 -Node: Extension Sample Rev2way1127478 -Node: Extension Sample Read write array1128218 -Node: Extension Sample Readfile1130160 -Node: Extension Sample Time1131255 -Node: Extension Sample API Tests1132603 -Node: gawkextlib1133095 -Node: Extension summary1136013 -Node: Extension Exercises1139715 -Node: Language History1140957 -Node: V7/SVR3.11142613 -Node: SVR41144765 -Node: POSIX1146199 -Node: BTL1147579 -Node: POSIX/GNU1148308 -Node: Feature History1154086 -Node: Common Extensions1170132 -Node: Ranges and Locales1171415 -Ref: Ranges and Locales-Footnote-11176031 -Ref: Ranges and Locales-Footnote-21176058 -Ref: Ranges and Locales-Footnote-31176293 -Node: Contributors1176514 -Node: History summary1182459 -Node: Installation1183839 -Node: Gawk Distribution1184783 -Node: Getting1185267 -Node: Extracting1186230 -Node: Distribution contents1187868 -Node: Unix Installation1194348 -Node: Quick Installation1195030 -Node: Shell Startup Files1197444 -Node: Additional Configuration Options1198533 -Node: Configuration Philosophy1200698 -Node: Non-Unix Installation1203067 -Node: PC Installation1203527 -Node: PC Binary Installation1204365 -Node: PC Compiling1204800 -Node: PC Using1205917 -Node: Cygwin1209470 -Node: MSYS1210569 -Node: VMS Installation1211070 -Node: VMS Compilation1211861 -Ref: VMS Compilation-Footnote-11213090 -Node: VMS Dynamic Extensions1213148 -Node: VMS Installation Details1214833 -Node: VMS Running1217086 -Node: VMS GNV1221365 -Node: VMS Old Gawk1222100 -Node: Bugs1222571 -Node: Bug address1223234 -Node: Usenet1226216 -Node: Maintainers1227220 -Node: Other Versions1228481 -Node: Installation summary1235395 -Node: Notes1236597 -Node: Compatibility Mode1237391 -Node: Additions1238173 -Node: Accessing The Source1239098 -Node: Adding Code1240535 -Node: New Ports1246754 -Node: Derived Files1251129 -Ref: Derived Files-Footnote-11256789 -Ref: Derived Files-Footnote-21256824 -Ref: Derived Files-Footnote-31257422 -Node: Future Extensions1257536 -Node: Implementation Limitations1258194 -Node: Extension Design1259377 -Node: Old Extension Problems1260521 -Ref: Old Extension Problems-Footnote-11262039 -Node: Extension New Mechanism Goals1262096 -Ref: Extension New Mechanism Goals-Footnote-11265460 -Node: Extension Other Design Decisions1265649 -Node: Extension Future Growth1267762 -Node: Notes summary1268598 -Node: Basic Concepts1269756 -Node: Basic High Level1270437 -Ref: figure-general-flow1270719 -Ref: figure-process-flow1271404 -Ref: Basic High Level-Footnote-11274705 -Node: Basic Data Typing1274890 -Node: Glossary1278218 -Node: Copying1310056 -Node: GNU Free Documentation License1347599 -Node: Index1372719 +Node: Getline255311 +Node: Plain Getline257780 +Node: Getline/Variable260421 +Node: Getline/File261572 +Node: Getline/Variable/File262960 +Ref: Getline/Variable/File-Footnote-1264565 +Node: Getline/Pipe264653 +Node: Getline/Variable/Pipe267360 +Node: Getline/Coprocess268495 +Node: Getline/Variable/Coprocess269762 +Node: Getline Notes270504 +Node: Getline Summary273301 +Ref: table-getline-variants273725 +Node: Read Timeout274473 +Ref: Read Timeout-Footnote-1278379 +Node: Retrying Input278437 +Node: Command-line directories279636 +Node: Input Summary280542 +Node: Input Exercises283714 +Node: Printing284442 +Node: Print286276 +Node: Print Examples287733 +Node: Output Separators290513 +Node: OFMT292530 +Node: Printf293886 +Node: Basic Printf294671 +Node: Control Letters296245 +Node: Format Modifiers301409 +Node: Printf Examples307424 +Node: Redirection309910 +Node: Special FD316751 +Ref: Special FD-Footnote-1319919 +Node: Special Files319993 +Node: Other Inherited Files320610 +Node: Special Network321611 +Node: Special Caveats322471 +Node: Close Files And Pipes323420 +Ref: table-close-pipe-return-values330327 +Ref: Close Files And Pipes-Footnote-1331140 +Ref: Close Files And Pipes-Footnote-2331288 +Node: Nonfatal331440 +Node: Output Summary333778 +Node: Output Exercises335000 +Node: Expressions335679 +Node: Values336867 +Node: Constants337545 +Node: Scalar Constants338236 +Ref: Scalar Constants-Footnote-1340760 +Node: Nondecimal-numbers341010 +Node: Regexp Constants344011 +Node: Using Constant Regexps344537 +Node: Standard Regexp Constants345159 +Node: Strong Regexp Constants348347 +Node: Variables351305 +Node: Using Variables351962 +Node: Assignment Options353872 +Node: Conversion356339 +Node: Strings And Numbers356863 +Ref: Strings And Numbers-Footnote-1359926 +Node: Locale influences conversions360035 +Ref: table-locale-affects362793 +Node: All Operators363411 +Node: Arithmetic Ops364040 +Node: Concatenation366546 +Ref: Concatenation-Footnote-1369393 +Node: Assignment Ops369500 +Ref: table-assign-ops374491 +Node: Increment Ops375804 +Node: Truth Values and Conditions379264 +Node: Truth Values380338 +Node: Typing and Comparison381386 +Node: Variable Typing382206 +Ref: Variable Typing-Footnote-1388669 +Ref: Variable Typing-Footnote-2388741 +Node: Comparison Operators388818 +Ref: table-relational-ops389237 +Node: POSIX String Comparison392732 +Ref: POSIX String Comparison-Footnote-1394427 +Ref: POSIX String Comparison-Footnote-2394566 +Node: Boolean Ops394650 +Ref: Boolean Ops-Footnote-1399132 +Node: Conditional Exp399224 +Node: Function Calls400960 +Node: Precedence404837 +Node: Locales408496 +Node: Expressions Summary410128 +Node: Patterns and Actions412701 +Node: Pattern Overview413821 +Node: Regexp Patterns415498 +Node: Expression Patterns416040 +Node: Ranges419821 +Node: BEGIN/END422929 +Node: Using BEGIN/END423690 +Ref: Using BEGIN/END-Footnote-1426426 +Node: I/O And BEGIN/END426532 +Node: BEGINFILE/ENDFILE428846 +Node: Empty431759 +Node: Using Shell Variables432076 +Node: Action Overview434350 +Node: Statements436675 +Node: If Statement438523 +Node: While Statement440018 +Node: Do Statement442046 +Node: For Statement443194 +Node: Switch Statement446365 +Node: Break Statement448751 +Node: Continue Statement450843 +Node: Next Statement452670 +Node: Nextfile Statement455053 +Node: Exit Statement457705 +Node: Built-in Variables460108 +Node: User-modified461241 +Node: Auto-set469008 +Ref: Auto-set-Footnote-1485815 +Ref: Auto-set-Footnote-2486021 +Node: ARGC and ARGV486077 +Node: Pattern Action Summary490290 +Node: Arrays492720 +Node: Array Basics494049 +Node: Array Intro494893 +Ref: figure-array-elements496868 +Ref: Array Intro-Footnote-1499572 +Node: Reference to Elements499700 +Node: Assigning Elements502164 +Node: Array Example502655 +Node: Scanning an Array504414 +Node: Controlling Scanning507436 +Ref: Controlling Scanning-Footnote-1512835 +Node: Numeric Array Subscripts513151 +Node: Uninitialized Subscripts515335 +Node: Delete516954 +Ref: Delete-Footnote-1519706 +Node: Multidimensional519763 +Node: Multiscanning522858 +Node: Arrays of Arrays524449 +Node: Arrays Summary529217 +Node: Functions531310 +Node: Built-in532348 +Node: Calling Built-in533429 +Node: Numeric Functions535425 +Ref: Numeric Functions-Footnote-1539453 +Ref: Numeric Functions-Footnote-2540098 +Ref: Numeric Functions-Footnote-3540146 +Node: String Functions540418 +Ref: String Functions-Footnote-1564276 +Ref: String Functions-Footnote-2564404 +Ref: String Functions-Footnote-3564652 +Node: Gory Details564739 +Ref: table-sub-escapes566530 +Ref: table-sub-proposed568049 +Ref: table-posix-sub569412 +Ref: table-gensub-escapes570953 +Ref: Gory Details-Footnote-1571776 +Node: I/O Functions571930 +Ref: table-system-return-values578398 +Ref: I/O Functions-Footnote-1580478 +Ref: I/O Functions-Footnote-2580626 +Node: Time Functions580746 +Ref: Time Functions-Footnote-1591417 +Ref: Time Functions-Footnote-2591485 +Ref: Time Functions-Footnote-3591643 +Ref: Time Functions-Footnote-4591754 +Ref: Time Functions-Footnote-5591866 +Ref: Time Functions-Footnote-6592093 +Node: Bitwise Functions592359 +Ref: table-bitwise-ops592953 +Ref: Bitwise Functions-Footnote-1599016 +Ref: Bitwise Functions-Footnote-2599189 +Node: Type Functions599380 +Node: I18N Functions602131 +Node: User-defined603782 +Node: Definition Syntax604594 +Ref: Definition Syntax-Footnote-1610281 +Node: Function Example610352 +Ref: Function Example-Footnote-1613274 +Node: Function Calling613296 +Node: Calling A Function613884 +Node: Variable Scope614842 +Node: Pass By Value/Reference617836 +Node: Function Caveats620480 +Ref: Function Caveats-Footnote-1622527 +Node: Return Statement622647 +Node: Dynamic Typing625626 +Node: Indirect Calls626556 +Ref: Indirect Calls-Footnote-1636808 +Node: Functions Summary636936 +Node: Library Functions639641 +Ref: Library Functions-Footnote-1643248 +Ref: Library Functions-Footnote-2643391 +Node: Library Names643562 +Ref: Library Names-Footnote-1647229 +Ref: Library Names-Footnote-2647452 +Node: General Functions647538 +Node: Strtonum Function648641 +Node: Assert Function651663 +Node: Round Function654989 +Node: Cliff Random Function656529 +Node: Ordinal Functions657545 +Ref: Ordinal Functions-Footnote-1660608 +Ref: Ordinal Functions-Footnote-2660860 +Node: Join Function661070 +Ref: Join Function-Footnote-1662840 +Node: Getlocaltime Function663040 +Node: Readfile Function666782 +Node: Shell Quoting668759 +Node: Data File Management670160 +Node: Filetrans Function670792 +Node: Rewind Function674888 +Node: File Checking676797 +Ref: File Checking-Footnote-1678131 +Node: Empty Files678332 +Node: Ignoring Assigns680311 +Node: Getopt Function681861 +Ref: Getopt Function-Footnote-1693330 +Node: Passwd Functions693530 +Ref: Passwd Functions-Footnote-1702369 +Node: Group Functions702457 +Ref: Group Functions-Footnote-1710355 +Node: Walking Arrays710562 +Node: Library Functions Summary713570 +Node: Library Exercises714976 +Node: Sample Programs715441 +Node: Running Examples716211 +Node: Clones716939 +Node: Cut Program718163 +Node: Egrep Program728092 +Ref: Egrep Program-Footnote-1735604 +Node: Id Program735714 +Node: Split Program739394 +Ref: Split Program-Footnote-1742852 +Node: Tee Program742981 +Node: Uniq Program745771 +Node: Wc Program753392 +Ref: Wc Program-Footnote-1757647 +Node: Miscellaneous Programs757741 +Node: Dupword Program758954 +Node: Alarm Program760984 +Node: Translate Program765839 +Ref: Translate Program-Footnote-1770404 +Node: Labels Program770674 +Ref: Labels Program-Footnote-1774025 +Node: Word Sorting774109 +Node: History Sorting778181 +Node: Extract Program780016 +Node: Simple Sed788070 +Node: Igawk Program791144 +Ref: Igawk Program-Footnote-1805475 +Ref: Igawk Program-Footnote-2805677 +Ref: Igawk Program-Footnote-3805799 +Node: Anagram Program805914 +Node: Signature Program808976 +Node: Programs Summary810223 +Node: Programs Exercises811437 +Ref: Programs Exercises-Footnote-1815566 +Node: Advanced Features815657 +Node: Nondecimal Data817647 +Node: Array Sorting819238 +Node: Controlling Array Traversal819938 +Ref: Controlling Array Traversal-Footnote-1828306 +Node: Array Sorting Functions828424 +Ref: Array Sorting Functions-Footnote-1833515 +Node: Two-way I/O833711 +Ref: Two-way I/O-Footnote-1841432 +Ref: Two-way I/O-Footnote-2841619 +Node: TCP/IP Networking841701 +Node: Profiling844819 +Node: Advanced Features Summary853837 +Node: Internationalization855681 +Node: I18N and L10N857161 +Node: Explaining gettext857848 +Ref: Explaining gettext-Footnote-1863740 +Ref: Explaining gettext-Footnote-2863925 +Node: Programmer i18n864090 +Ref: Programmer i18n-Footnote-1869039 +Node: Translator i18n869088 +Node: String Extraction869882 +Ref: String Extraction-Footnote-1871014 +Node: Printf Ordering871100 +Ref: Printf Ordering-Footnote-1873886 +Node: I18N Portability873950 +Ref: I18N Portability-Footnote-1876406 +Node: I18N Example876469 +Ref: I18N Example-Footnote-1879744 +Ref: I18N Example-Footnote-2879817 +Node: Gawk I18N879926 +Node: I18N Summary880575 +Node: Debugger881916 +Node: Debugging882916 +Node: Debugging Concepts883357 +Node: Debugging Terms885166 +Node: Awk Debugging887741 +Ref: Awk Debugging-Footnote-1888686 +Node: Sample Debugging Session888818 +Node: Debugger Invocation889352 +Node: Finding The Bug890738 +Node: List of Debugger Commands897212 +Node: Breakpoint Control898545 +Node: Debugger Execution Control902239 +Node: Viewing And Changing Data905601 +Node: Execution Stack909142 +Node: Debugger Info910779 +Node: Miscellaneous Debugger Commands914850 +Node: Readline Support919912 +Node: Limitations920808 +Node: Debugging Summary923362 +Node: Namespaces924641 +Node: Global Namespace925720 +Node: Qualified Names927118 +Node: Default Namespace928117 +Node: Changing The Namespace928858 +Node: Naming Rules930472 +Node: Internal Name Management932320 +Node: Namespace Example933362 +Node: Namespace And Features935924 +Node: Namespace Summary937359 +Node: Arbitrary Precision Arithmetic938836 +Node: Computer Arithmetic940323 +Ref: table-numeric-ranges944089 +Ref: table-floating-point-ranges944582 +Ref: Computer Arithmetic-Footnote-1945240 +Node: Math Definitions945297 +Ref: table-ieee-formats948613 +Ref: Math Definitions-Footnote-1949216 +Node: MPFR features949321 +Node: FP Math Caution951039 +Ref: FP Math Caution-Footnote-1952111 +Node: Inexactness of computations952480 +Node: Inexact representation953440 +Node: Comparing FP Values954800 +Node: Errors accumulate956041 +Node: Getting Accuracy957474 +Node: Try To Round960184 +Node: Setting precision961083 +Ref: table-predefined-precision-strings961780 +Node: Setting the rounding mode963610 +Ref: table-gawk-rounding-modes963984 +Ref: Setting the rounding mode-Footnote-1967915 +Node: Arbitrary Precision Integers968094 +Ref: Arbitrary Precision Integers-Footnote-1971269 +Node: Checking for MPFR971418 +Node: POSIX Floating Point Problems972892 +Ref: POSIX Floating Point Problems-Footnote-1977177 +Node: Floating point summary977215 +Node: Dynamic Extensions979405 +Node: Extension Intro980958 +Node: Plugin License982224 +Node: Extension Mechanism Outline983021 +Ref: figure-load-extension983460 +Ref: figure-register-new-function985025 +Ref: figure-call-new-function986117 +Node: Extension API Description988179 +Node: Extension API Functions Introduction989821 +Ref: table-api-std-headers991657 +Node: General Data Types995522 +Ref: General Data Types-Footnote-11003883 +Node: Memory Allocation Functions1004182 +Ref: Memory Allocation Functions-Footnote-11008392 +Node: Constructor Functions1008491 +Node: Registration Functions1012077 +Node: Extension Functions1012762 +Node: Exit Callback Functions1018084 +Node: Extension Version String1019334 +Node: Input Parsers1019997 +Node: Output Wrappers1032718 +Node: Two-way processors1037230 +Node: Printing Messages1039495 +Ref: Printing Messages-Footnote-11040666 +Node: Updating ERRNO1040819 +Node: Requesting Values1041558 +Ref: table-value-types-returned1042295 +Node: Accessing Parameters1043231 +Node: Symbol Table Access1044466 +Node: Symbol table by name1044978 +Ref: Symbol table by name-Footnote-11048002 +Node: Symbol table by cookie1048130 +Ref: Symbol table by cookie-Footnote-11052315 +Node: Cached values1052379 +Ref: Cached values-Footnote-11055915 +Node: Array Manipulation1056068 +Ref: Array Manipulation-Footnote-11057159 +Node: Array Data Types1057196 +Ref: Array Data Types-Footnote-11059854 +Node: Array Functions1059946 +Node: Flattening Arrays1064444 +Node: Creating Arrays1071420 +Node: Redirection API1076187 +Node: Extension API Variables1079020 +Node: Extension Versioning1079731 +Ref: gawk-api-version1080160 +Node: Extension GMP/MPFR Versioning1081891 +Node: Extension API Informational Variables1083519 +Node: Extension API Boilerplate1084592 +Node: Changes from API V11088566 +Node: Finding Extensions1090138 +Node: Extension Example1090697 +Node: Internal File Description1091495 +Node: Internal File Ops1095575 +Ref: Internal File Ops-Footnote-11106925 +Node: Using Internal File Ops1107065 +Ref: Using Internal File Ops-Footnote-11109448 +Node: Extension Samples1109722 +Node: Extension Sample File Functions1111251 +Node: Extension Sample Fnmatch1118900 +Node: Extension Sample Fork1120387 +Node: Extension Sample Inplace1121605 +Node: Extension Sample Ord1124909 +Node: Extension Sample Readdir1125745 +Ref: table-readdir-file-types1126634 +Node: Extension Sample Revout1127439 +Node: Extension Sample Rev2way1128028 +Node: Extension Sample Read write array1128768 +Node: Extension Sample Readfile1130710 +Node: Extension Sample Time1131805 +Node: Extension Sample API Tests1133153 +Node: gawkextlib1133645 +Node: Extension summary1136563 +Node: Extension Exercises1140265 +Node: Language History1141507 +Node: V7/SVR3.11143163 +Node: SVR41145315 +Node: POSIX1146749 +Node: BTL1148129 +Node: POSIX/GNU1148858 +Node: Feature History1154636 +Node: Common Extensions1170682 +Node: Ranges and Locales1171965 +Ref: Ranges and Locales-Footnote-11176581 +Ref: Ranges and Locales-Footnote-21176608 +Ref: Ranges and Locales-Footnote-31176843 +Node: Contributors1177064 +Node: History summary1183009 +Node: Installation1184389 +Node: Gawk Distribution1185333 +Node: Getting1185817 +Node: Extracting1186780 +Node: Distribution contents1188418 +Node: Unix Installation1194898 +Node: Quick Installation1195580 +Node: Shell Startup Files1197994 +Node: Additional Configuration Options1199083 +Node: Configuration Philosophy1201248 +Node: Non-Unix Installation1203617 +Node: PC Installation1204077 +Node: PC Binary Installation1204915 +Node: PC Compiling1205350 +Node: PC Using1206467 +Node: Cygwin1210020 +Node: MSYS1211119 +Node: VMS Installation1211620 +Node: VMS Compilation1212411 +Ref: VMS Compilation-Footnote-11213640 +Node: VMS Dynamic Extensions1213698 +Node: VMS Installation Details1215383 +Node: VMS Running1217636 +Node: VMS GNV1221915 +Node: VMS Old Gawk1222650 +Node: Bugs1223121 +Node: Bug address1223784 +Node: Usenet1226766 +Node: Maintainers1227770 +Node: Other Versions1229031 +Node: Installation summary1235945 +Node: Notes1237147 +Node: Compatibility Mode1237941 +Node: Additions1238723 +Node: Accessing The Source1239648 +Node: Adding Code1241085 +Node: New Ports1247304 +Node: Derived Files1251679 +Ref: Derived Files-Footnote-11257339 +Ref: Derived Files-Footnote-21257374 +Ref: Derived Files-Footnote-31257972 +Node: Future Extensions1258086 +Node: Implementation Limitations1258744 +Node: Extension Design1259927 +Node: Old Extension Problems1261071 +Ref: Old Extension Problems-Footnote-11262589 +Node: Extension New Mechanism Goals1262646 +Ref: Extension New Mechanism Goals-Footnote-11266010 +Node: Extension Other Design Decisions1266199 +Node: Extension Future Growth1268312 +Node: Notes summary1269148 +Node: Basic Concepts1270306 +Node: Basic High Level1270987 +Ref: figure-general-flow1271269 +Ref: figure-process-flow1271954 +Ref: Basic High Level-Footnote-11275255 +Node: Basic Data Typing1275440 +Node: Glossary1278768 +Node: Copying1310606 +Node: GNU Free Documentation License1348149 +Node: Index1373269 End Tag Table |