Copyright (C) 2000-2012 |
GNU Info (gawk.info)User-modifiedBuilt-in Variables That Control `awk' ------------------------------------- The following is an alphabetical list of variables that you can change to control how `awk' does certain things. The variables that are specific to `gawk' are marked with a pound sign (`#'). `BINMODE #' On non-POSIX systems, this variable specifies use of "binary" mode for all I/O. Numeric values of one, two, or three, specify that input files, output files, or all files, respectively, should use binary I/O. Alternatively, string values of `"r"' or `"w"' specify that input files and output files, respectively, should use binary I/O. A string value of `"rw"' or `"wr"' indicates that all files should use binary I/O. Any other string value is equivalent to `"rw"', but `gawk' generates a warning message. `BINMODE' is described in more detail in Note: Using `gawk' on PC Operating Systems. This variable is a `gawk' extension. In other `awk' implementations (except `mawk', Note: Other Freely Available `awk' Implementations.), or if `gawk' is in compatibility mode (Note: Command-Line Options.), it is not special. `CONVFMT' This string controls conversion of numbers to strings (Note: Conversion of Strings and Numbers.). It works by being passed, in effect, as the first argument to the `sprintf' function (Note: String Manipulation Functions.). Its default value is `"%.6g"'. `CONVFMT' was introduced by the POSIX standard. `FIELDWIDTHS #' This is a space-separated list of columns that tells `gawk' how to split input with fixed columnar boundaries. Assigning a value to `FIELDWIDTHS' overrides the use of `FS' for field splitting. Note: Reading Fixed-Width Data, for more information. If `gawk' is in compatibility mode (*note Command-Line Options: Options.), then `FIELDWIDTHS' has no special meaning, and field-splitting operations occur based exclusively on the value of `FS'. `FS' This is the input field separator (Note: Specifying How Fields Are Separated.). The value is a single-character string or a multi-character regular expression that matches the separations between fields in an input record. If the value is the null string (`""'), then each character in the record becomes a separate field. (This behavior is a `gawk' extension. POSIX `awk' does not specify the behavior when `FS' is the null string.) The default value is `" "', a string consisting of a single space. As a special exception, this value means that any sequence of spaces, tabs, and/or newlines is a single separator.(1) It also causes spaces, tabs, and newlines at the beginning and end of a record to be ignored. You can set the value of `FS' on the command line using the `-F' option: awk -F, 'PROGRAM' INPUT-FILES If `gawk' is using `FIELDWIDTHS' for field splitting, assigning a value to `FS' causes `gawk' to return to the normal, `FS'-based field splitting. An easy way to do this is to simply say `FS = FS', perhaps with an explanatory comment. `IGNORECASE #' If `IGNORECASE' is nonzero or non-null, then all string comparisons and all regular expression matching are case-independent. Thus, regexp matching with `~' and `!~', as well as the `gensub', `gsub', `index', `match', `split', and `sub' functions, record termination with `RS', and field splitting with `FS', all ignore case when doing their particular regexp operations. However, the value of `IGNORECASE' does _not_ affect array subscripting. Note: Case Sensitivity in Matching. If `gawk' is in compatibility mode (*note Command-Line Options: Options.), then `IGNORECASE' has no special meaning. Thus, string and regexp operations are always case-sensitive. `LINT #' When this variable is true (nonzero or non-null), `gawk' behaves as if the `--lint' command-line option is in effect. (Note: Command-Line Options.). With a value of `"fatal"', lint warnings become fatal errors. Any other true value prints non-fatal warnings. Assigning a false value to `LINT' turns off the lint warnings. This variable is a `gawk' extension. It is not special in other `awk' implementations. Unlike the other special variables, changing `LINT' does affect the production of lint warnings, even if `gawk' is in compatibility mode. Much as the `--lint' and `--traditional' options independently control different aspects of `gawk''s behavior, the control of lint warnings during program execution is independent of the flavor of `awk' being executed. `OFMT' This string controls conversion of numbers to strings (Note: Conversion of Strings and Numbers.) for printing with the `print' statement. It works by being passed as the first argument to the `sprintf' function (Note: String Manipulation Functions.). Its default value is `"%.6g"'. Earlier versions of `awk' also used `OFMT' to specify the format for converting numbers to strings in general expressions; this is now done by `CONVFMT'. `OFS' This is the output field separator (Note: Output Separators). It is output between the fields printed by a `print' statement. Its default value is `" "', a string consisting of a single space. `ORS' This is the output record separator. It is output at the end of every `print' statement. Its default value is `"\n"', the newline character. (Note: Output Separators.) `RS' This is `awk''s input record separator. Its default value is a string containing a single newline character, which means that an input record consists of a single line of text. It can also be the null string, in which case records are separated by runs of blank lines. If it is a regexp, records are separated by matches of the regexp in the input text. (Note: How Input Is Split into Records.) The ability for `RS' to be a regular expression is a `gawk' extension. In most other `awk' implementations, or if `gawk' is in compatibility mode (Note: Command-Line Options.), just the first character of `RS''s value is used. `SUBSEP' This is the subscript separator. It has the default value of `"\034"' and is used to separate the parts of the indices of a multidimensional array. Thus, the expression `foo["A", "B"]' really accesses `foo["A\034B"]' (*note Multidimensional Arrays: Multi-dimensional.). `TEXTDOMAIN #' This variable is used for internationalization of programs at the `awk' level. It sets the default text domain for specially marked string constants in the source text, as well as for the `dcgettext' and `bindtextdomain' functions (Note: Internationalization with `gawk'.). The default value of `TEXTDOMAIN' is `"messages"'. This variable is a `gawk' extension. In other `awk' implementations, or if `gawk' is in compatibility mode (Note: Command-Line Options.), it is not special. ---------- Footnotes ---------- (1) In POSIX `awk', newline does not count as whitespace. automatically generated by info2www version 1.2.2.9 |