.-----------------------------------------------------------------------. | | | AWK Cheat Sheet | | | '-----------------------------------------------------------------------' | Peteris Krumins (peter@catonmat.net), 2007.08.22 | | http://www.catonmat.net - good coders code, great reuse | '-----------------------------------------------------------------------' ===================== Predefined Variable Summary ===================== .-------------+-----------------------------------.---------------------. | | | Support: | | Variable | Description '-----.-------.-------' | | | AWK | NAWK | GAWK | '-------------+-----------------------------------+-----+-------+-------' | FS | Input Field Separator, a space by | + | + | + | | | default. | | | | '-------------+-----------------------------------+-----+-------+-------' | OFS | Output Field Separator, a space | + | + | + | | | by default. | | | | '-------------+-----------------------------------+-----+-------+-------' | NF | The Number of Fields in the | + | + | + | | | current input record. | | | | '-------------+-----------------------------------+-----+-------+-------' | NR | The total Number of input Records | + | + | + | | | seen so far. | | | | '-------------+-----------------------------------+-----+-------+-------' | RS | Record Separator, a newline by | + | + | + | | | default. | | | | '-------------+-----------------------------------+-----+-------+-------' | ORS | Output Record Separator, a | + | + | + | | | newline by default. | | | | '-------------+-----------------------------------+-----+-------+-------' | FILENAME | The name of the current input | | | | | | file. If no files are specified | | | | | | on the command line, the value of | | | | | | FILENAME is "-". However, | + | + | + | | | FILENAME is undefined inside the | | | | | | BEGIN block (unless set by | | | | | | getline). | | | | '-------------+-----------------------------------+-----+-------+-------' | ARGC | The number of command line | | | | | | arguments (does not include | | | | | | options to gawk, or the program | - | + | + | | | source). Dynamically changing the | | | | | | contents of ARGV control the | - | + | + | | | files used for data. | | | | '-------------+-----------------------------------+-----+-------+-------' | ARGV | Array of command line arguments. | | | | | | The array is indexed from 0 to | - | + | + | | | ARGC - 1. | | | | '-------------+-----------------------------------+-----+-------+-------' | ARGIND | The index in ARGV of the current | - | - | + | | | file being processed. | | | | '-------------+-----------------------------------+-----+-------+-------' | BINMODE | On non-POSIX systems, specifies | | | | | | use of "binary" mode for all file | | | | | | I/O.Numeric values of 1, 2, or 3, | | | | | | specify that input files, output | | | | | | files, or all files, respectively,| | | | | | should use binary I/O. String | | | | | | values of "r", or "w" specify | - | - | + | | | that input files, or output files,| | | | | | respectively, should use binary | | | | | | I/O. String values of "rw" or | | | | | | "wr" specify that all files | | | | | | should use binary I/O. Any other | | | | | | string value is treated as "rw", | | | | | | but generates a warning message. | | | | '-------------+-----------------------------------+-----+-------+-------' | CONVFMT | The CONVFMT variable is used to | | | | | | specify the format when | - | - | + | | | converting a number to a string. | | | | | | Default: "%.6g" | | | | '-------------+-----------------------------------+-----+-------+-------' | ENVIRON | An array containing the values | - | - | + | | | of the current environment. | | | | '-------------+-----------------------------------+-----+-------+-------' | ERRNO | If a system error occurs either | | | | | | doing a redirection for getline, | | | | | | during a read for getline, or | | | | | | during a close(), then ERRNO will | - | - | + | | | contain a string describing the | | | | | | error. The value is subject to | | | | | | translation in non-English locales. | | | '-------------+-----------------------------------+-----+-------+-------' | FIELDWIDTHS | A white-space separated list of | | | | | | fieldwidths. When set, gawk | | | | | | parses the input into fields of | - | - | + | | | fixed width, instead of using the | | | | | | value of the FS variable as the | | | | | | field separator. | | | | '-------------+-----------------------------------+-----+-------+-------' | FNR | Contains number of lines read, | - | + | + | | | but is reset for each file read. | | | | '-------------+-----------------------------------+-----+-------+-------' | IGNORECASE | Controls the case-sensitivity of | | | | | | all regular expression and string | | | | | | operations. If IGNORECASE has a | | | | | | non-zero value, then string | | | | | | comparisons and pattern matching | | | | | | in rules, field splitting | | | | | | with FS, record separating | | | | | | with RS, regular expression | | | | | | matching with ~ and !~, and the | - | - | + | | | gensub(), gsub(), index(), | | | | | | match(), split(), and sub() | | | | | | built-in functions all ignore | | | | | | case when doing regular | | | | | | expression operations. | | | | | | NOTE: Array subscripting is not | | | | | | affected. However, the asort() | | | | | | and asorti() functions are | | | | | | affected | | | | '-------------+-----------------------------------+-----+-------+-------' | LINT | Provides dynamic control of the | | | | | | --lint option from within an AWK | - | - | + | | | program. When true, gawk prints | | | | | | lint warnings. | | | | '-------------+-----------------------------------+-----+-------+-------' | OFMT | The default output format for | - | + | + | | | numbers. Default: "%.6g" | | | | '-------------+-----------------------------------+-----+-------+-------' | PROCINFO | The elements of this array | | | | | | provide access to information | | | | | | about the running AWK program. | | | | | | PROCINFO["egid"]: | | | | | | the value of the getegid(2) | | | | | | system call. | | | | | | PROCINFO["euid"]: | | | | | | the value of the geteuid(2) | | | | | | system call. | | | | | | PROCINFO["FS"]: | | | | | | "FS" if field splitting with FS | | | | | | is in effect, or "FIELDWIDTHS" | | | | | | if field splitting with | | | | | | FIELDWIDTHS is in effect. | | | | | | PROCINFO["gid"]: | - | - | + | | | the value of the getgid(2) system | | | | | | call. | | | | | | PROCINFO["pgrpid"]: | | | | | | the process group ID of the | | | | | | current process. | | | | | | PROCINFO["pid"]: | | | | | | the process ID of the current | | | | | | process. | | | | | | PROCINFO["ppid"]: | | | | | | the parent process ID of the | | | | | | current process. | | | | | | PROCINFO["uid"] | | | | | | the value of the getuid(2) system | | | | | | call. | | | | '-------------+-----------------------------------+-----+-------+-------' | RT | The record terminator. Gawk sets | | | | | | RT to the input text that matched | - | - | + | | | the character or regular | | | | | | expression specified by RS. | | | | '-------------+-----------------------------------+-----+-------+-------' | RSTART | The index of the first character | - | + | + | | | matched by match(); 0 if no match.| | | | '-------------+-----------------------------------+-----+-------+-------' | RLENGTH | The length of the string matched | - | + | + | | | by match(); -1 if no match. | | | | '-------------+-----------------------------------+-----+-------+-------' | SUBSEP | The character used to separate | | | | | | multiple subscripts in array | | | | | | elements.Default: "