This document is a quick reference guide for the awk programming language, detailing its syntax, built-in functions, and operators. It includes examples of basic programs, control structures, and built-in variables. The guide serves as a concise resource for users to understand and utilize awk effectively.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
7 views1 page
AWK Cheat Sheet
This document is a quick reference guide for the awk programming language, detailing its syntax, built-in functions, and operators. It includes examples of basic programs, control structures, and built-in variables. The guide serves as a concise resource for users to understand and utilize awk effectively.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1
OFS, ORS Output field / rec.
separator (def: one space, \n) Operators
awk Quick Ref compiled by v.ledos rel 1.0 feb-2010 RESTART, Start / Length of string matched by RLENGTH match function (see below) && || ! Logical operators. Ex: !($2<4 || $3<20) SUBSEP Subscript separator (default: \034) < <= == != >= > Comparing operators Usage ~ !~ matched by, not selector?if-true-exp:if-false-exp awk [-v var=val] 'program' [file1 file2...] Main built-in functions awk [-v var=val] -f progfile [file1 file2...] r: regex ; s,t: strings ; n,p: integers Basic programs Structure of an awk program int(n), sqrt(n), exp(n), log(n), # comments sin(n), cos(n) { print NR, $0 } Precede each line by line # pattern { action } A sequence of rand() Random number between 0 and 1 { $1 = NR; print } Replace first field by line # pattern { action } pattern-action { $2 = log($2); $3 =”” ; print } statements close(file or command) … Replace the 2nd field by its logarithm, zap field 3 getline [var] Read next line from input file, NF > 0 Print non-empty lines getline [var] < file from a specific file, For each file, NF > 0 {print $1, $NF} command | getline [var] or from a pipe For each input line, Print first field and last one of non-empty lines Return 1 (record found), 0 (end of file), -1 (error) For each pattern, NF > 4 Print records containing more than 4 fields gsub(r,s) Substitute s for r globally in $0 / string t; If pattern matches input line, do the action. $NF > 4 Print if last field greater than 4 gsub(r,s,t) return # of subs made index(s,t) NR%2==0 Print even-numbered lines Return first position of string t in s, or 0 "pattern" NR==10, NR==20 Print lines 10 to 20 if t is not present BEGIN : executes “ action” before starting to view the input file /start/, /end / Print lines between patterns length(s) Return number of characters in s END : executes “ action” after ending to view the input file match(s,r) /regex/, EOF Print from pattern to end of file Test whether s contains a substring Other : regular, numeric or string expression or combination matched by r; return index or 0; sets /regex/ {print $1} RSTART and RLENGTH Print first field of lines matching regex "action" is executable code split(s,a) Split s into array a on FS / field $1 ~ /regex/ Print lines where first field matches if (expression) statement1 else statement2 split(s,a,fs) separaror fs; return # of fields ORS=NR%5?”,”:”\n” while (expression) statement sprintf(fmt,expr-list) Concatenate every 5 lines of input, using comma separator for (expr1;expr2;expr3) statement /regex/ {x++} Return expr-list formatted according to format string fmt Count and print the number do statement while (expression) sub(r,s) END {print x} of lines matching /regex/ Substitute s for the leftmost longest break / continue : immediately leave / start next iteration sub(r,s,t) substring of $0 / t matched by r; return # { nc += length($0) + 1; nw += NF } of innermost enclosing loop of subs made END { print NR, "lines", nw, "words", nc, exit / exit expression : go immediately to the END substr(s,p) Return substring of s (of length n) "characters" } wc command action; if within the END action, exit program substr(s,p,n) starting at position p { sum += $1 } Print sum and tolower(s), toupper(s) Lower and upper cases END { print sum, sum/NR } average Built-in variables { x[NR] = $0 } END {for (i = NR; i > 0; i--) print x[i]} Formatted output Reverse a file $0 Whole line, $1, $2 … $NF first, second… last field { a[$1] += $2 } { printf (“FORMAT”,value1,value2,value3,…) } END { for (i in a) print (i,":",a[i]) } ARGC Number of command line arguments ARGV Array of command line arguments Group by field 1, and sum field 2 %c %s Print as character, as string function pwr(a,b) { return exp(b*log(a)) } FILENAME Name of current input file %-8s Print as 8 characters, left aligned NF >= 2 { print pwr($1,$2) } FS, RS Input field / record separator (def: one space, \n) %f Print as float number, User defined function NF Number of fields in current record %6.2f with 6 digits (4 as integer, 2 as decimal) BEGIN { RS=””; FS=”\n” } Multi-line records. NR, FNR Number of record read so far / in current file \n Line feed and carriage return { print “Name: “,$1 Leading and trailing OFMT Output format for numbers (default: %.6g) print “Address: “,$2 } newlines are ignored
[FREE PDF sample] Project Management Metrics, KPIs, and Dashboards: A Guide to Measuring and Monitoring Project Performance 4th Edition Harold Kerzner ebooks