NAWK(1) General Commands Manual NAWK(1) (NAME) nawk - (SYNOPSIS) nawk [ -F fs | --csv ] [ -v var=value ] [ 'prog' | -f progfile ] [ file ... ] (DESCRIPTION) Nawk file prog -f progfile . file . - . - . file var=value . -v var=value prog -v . -F fs fs . --csv awk (CSV) . FS . $1 $2 ... $0 . FS . - : pattern { action } { action } . - - . . : if( expression ) statement [ else statement ] while( expression ) statement for( expression ; expression ; expression ) statement for( var in array ) statement do statement while( expression ) break continue { [ statement ... ] } expression # var = expression print [ expression-list ] [ > expression ] printf format [ , expression-list ] [ > expression ] return [ expression ] next # nextfile # delete array[ expression ]# delete array # exit [ expression ] # expression - . expression-list $0 . " " C . + - * / % ^ () ( ) . ! ++ -- += -= *= /= %= ^= > >= < <= == != ?: . ( x[i]) . . ( ) . [i,j,k] SUBSEP . print ( > file >> file | cmd ) . file cmd . printf format ( printf(3) ). close(expr) expr . fflush(expr) expr . atan2 cos exp log sin sqrt . : length([v]) $0 . rand() [0,1). srand([s]) rand . int(x) . substr(s, m [, n]) n- s m ( ) . n . index(s, t) t s 0 . match(s, r) r s 0 . RSTART RLENGTH . split(s, a [, fs]) s a[1] a[2] ... a[n] n . fs FS ( fs ) . . sub(r, t [, s]) t r s . s $0 . gsub(r, t [, s]) sub sub gsub . sprintf(fmt, expr, ...) expr ... fmt printf(3). system(cmd) cmd . -1 cmd 256 + sig ( sig ) 512 + sig core dump. tolower(str) str . toupper(str) str . <<>> getline $0 getline < file $0 file . getline x x . cmd | getline cmd getline getline cmd . getline 1 0 -1 . ( ! || &&) . egrep grep(1) . . ~ !~. /re/ ( ) . ( ) . : expression matchop regular-expression expression relop expression expression in array-name (expr,expr,...) in array-name relop C matchop ~ ( ) !~ ( ) . . BEGIN END . BEGIN END . nawk . : ARGC . ARGV . CONVFMT ( %.6g). ENVIRON . FILENAME . FNR . FS -Ffs . NF . NR . OFMT ( %.6g). OFS ( ). ORS ( ). RLENGTH match. RS ( ). . RS . RSTART match. SUBSEP ( 034). ( -) : function foo(a, b, c) { ... } (by value) (by reference) . . . (ENVIRONMENT VARIABLES) POSIXLY_CORRECT awk POSIX sub gsub . (EXAMPLES) length($0) > 72 . { print $2, $1 } . BEGIN { FS = ",[ \t]*|[ \t]+" } { print $2, $1 } / . { s += $1 } END { print "sum is", s, " average is", s/NR } . /start/, /stop/ start/stop. BEGIN { # Simulate echo(1) for (i = 1; i < ARGC; i++) printf "%s ", ARGV[i] printf "\n" exit } (SEE ALSO) grep(1), lex(1), sed(1) A. V. Aho, B. W. Kernighan, P. J. Weinberger, The AWK Programming Language, Second Edition, Addison-Wesley, 2024. ISBN 978-0-13-826972-2, 0-13-826972-6. (BUGS) . 0 "" . (scope) . UTF-8 . . awk . (UNUSUAL FLOATING-POINT VALUES) Awk IEEE 754 Not-A-Number (NaN) (Infinity) . awk strtod(3) atof(3) C inf nan NaN . : echo nancy | awk '{ print $1 + 0 }' nan . Awk GNU AWK : ( C99 ) C99 . NaN +nan -nan ( ) NaN . (NaN .) +inf -inf ( ) . . NAWK(1)