GAWK(1) GAWK(1) (NAME) gawk - (SYNOPSIS) gawk [ POSIX GNU ] -f _ [ -- ] ... gawk [ POSIX GNU ] [ -- ] _ ... (README FIRST) . (One Source Of Truth) gawk Texinfo : https://www.gnu.org/software/gawk/manual. Info info(1) . Texinfo Texinfo . Info HTML PDF Texinfo . gawk . (DESCRIPTION) Gawk GNU AWK . POSIX 1003.1 . The AWK Programming Language (Aho) (Kernighan) (Weinberger) . Gawk awk GNU . gawk AWK ( -f --include ) ARGC ARGV . (PREFACE) . GAWK: Effective AWK Programming . . (OPTION FORMAT) Gawk POSIX GNU . POSIX "-" "--" . GNU POSIX . Gawk . = . . #! . (OPTIONS) Gawk . gawk . -f program-file, --file program-file AWK program-file . -f . -f @namespace "awk" . -F fs, --field-separator fs fs ( FS). -v var=val, --assign var=val val var . BEGIN AWK . -b, --characters-as-bytes . --posix . -c, --traditional (compatibility). gawk awk GNU . -C, --copyright GNU . -d[file], --dump-variables[=file] file. awkvars.out . -D[file], --debug[=file] () AWK. ( ) . file . gawk AWK . Gawk AWK -f --include . GAWK: Effective AWK Programming : https://www.gnu.org/software/gawk/manual/html_node/Debugger.html#Debugger. -e program-text, --source program-text program-text AWK. -e @namespace "awk" . -E file, --exec file -f . #! ( CGI) (!) URL . . -g, --gen-pot AWK GNU .pot (Portable Object Template) . . -h, --help . (GNU Coding Standards) . -i include-file, --include include-file awk. AWKPATH . .awk . ( ) . --include @namespace "awk" . -I, --trace . . " (op code)" + . -k, --csv CSV ( ). . -l lib, --load lib gawk lib. AWKLIBPATH . . dl_load() . -L [value], --lint[=value] AWK . value : https://www.gnu.org/software/gawk/manual/html_node/Options.html#Options. -M, --bignum . gawk GNU MPFR GMP ( gawk ). : . gawk . gawk . -n, --non-decimal-data () () . ! -N, --use-lc-numeric gawk . -o[file], --pretty-print[=file] file. awkprof.out . --no-optimize . -O, --optimize gawk . . -p[prof-file], --profile[=prof-file] (profiling) prof-file. awkprof.out . . Gawk . --no-optimize . -P, --posix . -r, --re-interval (interval expressions) . . -s, --no-optimize gawk . -S, --sandbox gawk () system() getline print printf . ( ) . -t, --lint-old awk UNIX . -V, --version gawk . . . -- . AWK "-" . . ARGV AWK . POSIX -W . AWK (AWK PROGRAM EXECUTION) AWK - : @include "filename" @nsinclude "filename" @load "filename" @namespace "name" pattern { action statements } function name(parameter list) { statements } Gawk program-file() --source . -f --source . Gawk program-file . @include . --include . @nsinclude : awk . @load . --load . AWKPATH -f --include . ".:/usr/local/share/awk" . ( gawk .) -f "/" . AWKLIBPATH --load . "/usr/local/lib/gawk" . ( gawk .) Gawk AWK : -v . gawk . gawk BEGIN ( ) ARGV ( ARGV[ARGC-1]) . gawk . var=val . var val ( BEGIN ). ARGV ("") gawk . BEGINFILE gawk . gawk ENDFILE . gawk AWK . gawk . . gawk END ( ) . (Command Line Directories) POSIX awk . "" . awk (fatal error) . gawk . --posix --traditional gawk . (VARIABLES AND ARRAYS) AWK . . gawk . AWK . gawk ( ) . . (Records) . RS . : https://www.gnu.org/software/gawk/manual/html_node/Records.html. (Fields) gawk FS . FIELDWIDTHS FPAT . : https://www.gnu.org/software/gawk/manual/html_node/Fields.html. : $1 $2 . $0 . NF . ( $NF) . ( $(NF+2) = 5) NF $0 OFS . . NF $0 OFS . $0 . $0 . (Comma Separated Values) -k --csv gawk . . . : https://www.gnu.org/software/gawk/manual/html_node/Comma-Separated-Fields.html. (Built-in Variables) Gawk . . : https://www.gnu.org/software/gawk/manual/html_node/Built_002din-Variables. ARGC . ARGIND ARGV. ARGV . 0 ARGC - 1 . BINMODE -POSIX (binary) / . : https://www.gnu.org/software/gawk/manual/html_node/PC-Using.html. CONVFMT "%.6g" . ENVIRON . . ERRNO getline getline close() ERRNO . . FIELDWIDTHS . gawk FS . . FILENAME . FILENAME "-" . FILENAME BEGIN ( getline ). FNR . FPAT . gawk FS . FS . : https://www.gnu.org/software/gawk/manual/html_node/Field-Separators.html. FUNCTAB . : delete FUNCTAB . IGNORECASE . : https://www.gnu.org/software/gawk/manual/html_node/Case_002dsensitivity.html. LINT --lint AWK . NF . NR . OFMT "%.6g" . OFS . ORS . PREC 53 . PROCINFO AWK . : https://www.gnu.org/software/gawk/manual/html_node/Auto_002dset. ROUNDMODE "N" ( roundTiesToEven IEEE-754). : https://www.gnu.org/software/gawk/manual/html_node/Setting-the-rounding-mode. RS . RT . Gawk RT RS . RSTART match() 0 . RLENGTH match() -1 . SUBSEP "\034" . SYMTAB . delete SYMTAB . TEXTDOMAIN AWK . (Arrays) ([ ]) . (expr, expr ...) () SUBSEP . . : i = "A"; j = "B"; k = "C" x[i, j, k] = "hello, world\n" "hello, world\n" x "A\034B\034C" . AWK (associative) . in : if (val in array) print array[val] (i, j) in array . in for . (i, j) in array for . delete . delete . gawk . C C++ "" . : https://www.gnu.org/software/gawk/manual/html_node/Arrays. (Namespaces) Gawk (namespace) AWK . (qualified name) (::) . . ( ) "" awk . awk . @namespace "name" . . gawk . : https://www.gnu.org/software/gawk/manual/html_node/Namespaces.html#Namespaces. (Variable Typing And Conversion) ( ) . . . . . "" ( ) . strtod(3) . CONVFMT sprintf(3) . AWK . Gawk : . " (numeric string)" . . . "57" . " " getline FILENAME ARGV ENVIRON split() patsplit() . . (Octal and Hexadecimal Constants) () () C AWK . 011 () 9 0x11 17 . (String Constants) AWK () ( "value"). (escape sequences) C . : https://www.gnu.org/software/gawk/manual/html_node/Escape-Sequences. (Regexp Constants) () ( /value/). ( /[ \t\f\n\r\v]/ ). Gawk (strongly typed) . @ ( : @/value/). ( ) . . (PATTERNS AND ACTIONS) AWK . . { } . . . : { print } . () # . . { ? : && || . do else . "\" . "\" # . ";" . - ( ) - . (Patterns) AWK : BEGIN END BEGINFILE ENDFILE /regular expression/ relational expression pattern && pattern pattern || pattern pattern ? pattern : pattern (pattern) ! pattern pattern1, pattern2 BEGIN END . BEGIN BEGIN . . END ( exit ) . BEGIN END . BEGIN END . BEGINFILE ENDFILE . BEGINFILE ERRNO . nextfile . gawk . /regular expression/ . egrep(1) . : https://www.gnu.org/software/gawk/manual/html_node/Regexp.html. (relational expression) . . && || ! (AND) (OR) (NOT) C . (short-circuit) C . . ?: C . . . pattern1, pattern2 (range pattern) . pattern1 pattern2 ( ) . . (Actions) { } . . / C . (Operators) AWK : (...) $ . ++ -- . ^ . + - ! . * / % . + - . (). | |& / getline print printf. < > <= >= == != . ~ !~ . in . && (AND). || (OR). ?: C. expr1 ? expr2 : expr3 . expr1 expr2 expr3 . expr2 expr3 . = += -= *= /= %= ^= . (var = value) ( ) . (Control Statements) : if (condition) statement [ else statement ] while (condition) statement do statement while (condition) for (expr1; expr2; expr3) statement for (var in array) statement break continue delete array[index] delete array exit [ expression ] { statements } switch (expression) { case value|regex : statement ... [ default: statement ] } / (I/O Statements) / : close(file [, how]) (coprocess). how . "to" "from". getline $0 NF NR FNR RT. getline $0 file NF RT. getline var var NR FNR RT. getline var var file RT. command | getline [var] command $0 var RT. command |& getline [var] command $0 var RT. ( command . .) fflush([file]) file. file . next . AWK . END . nextfile . . FILENAME ARGIND FNR 1 AWK . ENDFILE END . print . ORS . print expr-list . OFS . ORS . print expr-list >file file. OFS . ORS . printf fmt, expr-list . printf fmt, expr-list >file file. system(cmd-line) cmd-line (exit status). ( -POSIX .) : https://www.gnu.org/software/gawk/manual/html_node/I_002fO-Functions.html#I_002fO-Functions. print printf : print ... >> file file. print ... | command . print ... |& command . ( .) getline 1 -1 . errno(3) / PROCINFO["input", "RETRY"] -1 -2 getline . ERRNO . : . getline print printf close() . AWK (EOF) . AWK printf sprintf() C . : https://www.gnu.org/software/gawk/manual/html_node/Printf.html. (Special File Names) / print printf getline gawk . gawk ( shell) . . : - . /dev/stdin . /dev/stdout . /dev/stderr . /dev/fd/n n. |& TCP/IP : /inet/tcp/lport/rhost/rport /inet4/tcp/lport/rhost/rport /inet6/tcp/lport/rhost/rport TCP/IP lport rhost rport. () 0 . /inet4 IPv4 /inet6 IPv6 . /inet ( IPv4) . / |& . /inet/udp/lport/rhost/rport /inet4/udp/lport/rhost/rport /inet6/udp/lport/rhost/rport TCP/IP UDP/IP . UDP . (Numeric Functions) AWK : atan2(y, x) () y/x . cos(expr) expr . exp(expr) ( e). int(expr) ( ). log(expr) . rand() N 0 <= N < 1. sin(expr) expr . sqrt(expr) () expr. srand([expr]) expr (seed) . expr . . (String Functions) Gawk : https://www.gnu.org/software/gawk/manual/html_node/String-Functions. asort(s [, d [, how] ]) s. s gawk s 1 . d s d d s . how . how : https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#String-Functions. s d . asorti(s [, d [, how] ]) s. asort() . . . how asort() . s d . gensub(r, s, h [, t]) t r. h g G r s . h r . t $0 . s \n n 1 9 n' . \0 & . sub() gsub() . gsub(r, s [, t]) r t s . t $0 . & . \& & . ( "\\&" sub() gsub() gensub() : https://www.gnu.org/software/gawk/manual/html_node/Gory-Details.html#Gory-Details). index(s, t) t s t . ( .) length([s]) s $0 s . length() . match(s, r [, a]) s r r RSTART RLENGTH. ~ : str ~ re. a : https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#String-Functions. patsplit(s, a [, r [, seps] ]) s a seps r . s r . seps[i] ( ) a[i] . seps[0] ( ) . r FPAT . a seps . FPAT . split(s, a [, r [, seps] ]) s a seps r . r FS . a seps . seps[i] r a[i] a[i+1] . . sprintf(fmt, expr-list) expr-list fmt . strtonum(str) str . str 0 () . str 0x 0X () . . sub(r, s [, t]) gsub() . . substr(s, i [, n]) n- s i . n s . tolower(str) str . . toupper(str) str . . Gawk . index() length() substr() match() . (Time Functions) Gawk . : https://www.gnu.org/software/gawk/manual/html_node/Time-Functions. mktime(datespec [, utc-flag]) datespec systime() . utc-flag UTC . datespec mktime() -1 . datespec : https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html#Time-Functions. strftime([format [, timestamp[, utc-flag]]]) timestamp format. utc-flag UTC . timestamp systime() . timestamp . format date(1) . PROCINFO["strftime"] . strftime() ISO C . systime() (Epoch: 1970-01-01 00:00:00 UTC POSIX). (Bit Manipulations Functions) Gawk . uintmax_t . . : and(v1, v2 [, ...]) AND . . compl(val) ( ) val. lshift(val, count) val count . or(v1, v2 [, ...]) OR . . rshift(val, count) val count . xor(v1, v2 [, ...]) XOR . . (Type Functions) . isarray(x) (true) x (false) . typeof(x) x . : "array", "number", "number|bool", "regexp", "string", "strnum", "unassigned", "untyped". (Internationalization Functions) AWK . : https://www.gnu.org/software/gawk/manual/html_node/I18N-Functions.html#I18N-Functions. bindtextdomain(directory [, domain]) gawk .gmo "" . domain " (bound)" . domain TEXTDOMAIN . directory ("") bindtextdomain() domain . dcgettext(string [, domain [, category]]) string domain category. domain TEXTDOMAIN . category "LC_MESSAGES" . dcngettext(string1, string2, number [, domain [, category]]) number string1 string2 domain category. domain TEXTDOMAIN . category "LC_MESSAGES" . (Boolean Valued Functions) . mkbool(expression) expression true false . (true) . (false) . (FUNCTIONS) AWK : function name(parameter list) { statements } . . (by reference) (by value) . . . : function f(p, q, a, b) # a b { ... } /abc/ { ... ; f(1, 2) ; ... } . . (recursive) . . return expr . " " . . . @ : function myfunc() { print "myfunc called" ... } { ... the_func = "myfunc" @the_func() # myfunc the_func ... } --lint gawk (parse time) (run time) . (fatal error) . (DYNAMICALLY LOADING NEW FUNCTIONS) C C++ @load gawk . : https://www.gnu.org/software/gawk/manual/html_node/Dynamic-Extensions.html#Dynamic-Extensions. (SIGNALS) gawk . SIGUSR1 awkprof.out --profile . . SIGHUP gawk . (INTERNATIONALIZATION) . AWK . AWK ("_") . : gawk 'BEGIN { print "hello, world" }' hello, world . : gawk 'BEGIN { print _"hello, world" }' bonjour, monde . AWK : https://www.gnu.org/software/gawk/manual/html_node/Internationalization.html#Internationalization. (GNU EXTENSIONS) Gawk awk POSIX . : https://www.gnu.org/software/gawk/manual/html_node/POSIX_002fGNU.html. gawk --traditional --posix . (ENVIRONMENT VARIABLES) AWKPATH gawk -f --file -i --include @include @nsinclude . .awk . AWKLIBPATH gawk -l --load . GAWK_PERSIST_FILE . GAWK: Effective AWK Programming . GAWK_READ_TIMEOUT (timeout) . GAWK_SOCK_RETRIES GAWK_MSEC_SLEEP . . usleep(3) . POSIXLY_CORRECT gawk --posix . --lint gawk . (EXIT STATUS) exit gawk . gawk EXIT_SUCCESS C . . gawk EXIT_FAILURE C . gawk 2 . -POSIX EXIT_FAILURE . (VERSION INFORMATION) 5.4 gawk . (AUTHORS) awk UNIX (Alfred Aho) (Peter Weinberger) (Brian Kernighan) (Bell Laboratories) . (Ozan Yigit) . . (Paul Rubin) (Jay Fenlason) gawk awk UNIX . (John Woods) . (David Trueman) (Arnold Robbins) gawk awk UNIX . . gawk GAWK: Effective AWK Programming . README gawk . (BUG REPORTS AND QUESTIONS) gawk gawkbug(1) . : https://www.gnu.org/software/gawk/manual/html_node/Bugs.html. . . . awk gawk () help-gawk@gnu.org . (BUGS) -F . gawk . (SEE ALSO) egrep(1), sed(1), gawkbug(1), printf(3), strftime(3). The AWK Programming Language, second edition, Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 2023. ISBN 9-780138-269722. GAWK: Effective AWK Programming, Edition 5.4, shipped with the gawk source. The current version of this document is available online at https://www.gnu.org/software/gawk/manual. The GNU gettext documentation, available online at https://www.gnu.org/software/gettext. (EXAMPLES) : BEGIN { FS = ":" } { print $1 | "sort" } : { nlines++ } END { print nlines } : { print FNR, $0 } ( ): { print NR, $0 } : tail -f access_log | awk '/myhome.html/ { system("nmap " $1 ">> logdir/myhome.html") }' (COPYING PERMISSIONS) Copyright (C) 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Free Software Foundation, Inc. (verbatim) . . . Free Software Foundation 2026-03-02 GAWK(1)