0% 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.
Copyright
© © All Rights Reserved
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% 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.
Copyright
© © All Rights Reserved
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

You might also like