0% found this document useful (0 votes)
200 views

Cheat Sheet Gnuawk v3 PDF

This document provides a cheat sheet for commonly used features of GNU awk (gawk). It summarizes how to run gawk scripts from the command line, defines patterns and actions, describes how to reference and split fields, covers flow control and looping structures, and lists many useful string and numeric functions. Regular expressions, operators, and defining custom functions are also briefly outlined.

Uploaded by

Albergica Aldo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
200 views

Cheat Sheet Gnuawk v3 PDF

This document provides a cheat sheet for commonly used features of GNU awk (gawk). It summarizes how to run gawk scripts from the command line, defines patterns and actions, describes how to reference and split fields, covers flow control and looping structures, and lists many useful string and numeric functions. Regular expressions, operators, and defining custom functions are also briefly outlined.

Uploaded by

Albergica Aldo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Opensource.

com: GNU awk Cheat Sheet PAGE 1 OF 2 BY JIM HALL

Use this handy quick reference guide to the most commonly used features of GNU awk (gawk).
COMMAND-LINE USAGE REGULAR EXPRESSIONS

Run a gawk script using -f or include a short script right on the Common regular expression patterns include:
command line.
^ Matches start of a line
gawk -f file.awk file1 file2… $ Matches end of a line
or: . Matches any character, including newline

gawk 'pattern {action}' file1 file2… a Matches a single letter a


a+ Matches one or more a's
also: set the field separator using -F
a* Matches zero or more a's
gawk -F: …
a? Matches zero or one a's
PATTERNS [abc] Matches any of the characters a, b, or c

All program lines are some combination of a pattern and actions: [^abc] Negation; matches any character except a, b, or c
\. Use backslash (\) to match a special character (like .)
pattern {action}

where pattern can be: You can also use character classes, including:

• BEGIN (matches start of input) [:alpha:] Any alphabetic character


• END (matches end of input) [:lower:] Any lowercase letter
• a regular expression (act only on matching lines) [:upper:] Any uppercase letter
• a comparison (act only when true) [:digit:] Any numeric character
• empty (act on all lines) [:alnum:] Any alphanumeric character

ACTIONS [:cntrl:] Any control character


[:blank:] Spaces or tabs
Actions are very similar to C programming.
[:space:] Spaces, tabs, and other white space (such as
Actions can span multiple lines.
linefeed)
End statements with a semicolon (;)
For example: OPERATORS

(…) Grouping
BEGIN { FS = ":"; }
++ -- Increment and decrement
{ print "Hello world"; } ^ Exponents

{ + - ! Unary plus, minus, and negation


print; * / % Multiply, divide, and modulo
i = i + 1; + - Add and subtract
}
< > <= >= == != Relations
FIELDS ~ !~ Regular expression match or negated match

Gawk does the work for you and splits input lines so you can && Logical AND
reference them by field. Use -F on the command line or set FS || Logical OR
to set the field separator. = += -= *= /= %= ^= Assignment
• Reference fields using $
• $1 for the first string, and so on
• Use $0 for the entire line
For example:

gawk '{print "1st word:", $1;}' file.txt

or:

gawk -F: '{print "uid", $3;}' /etc/passwd

opensource.com Twitter @opensourceway | facebook.com/opensourceway | CC BY-SA 4.0


Opensource.com: GNU awk Cheat Sheet PAGE 2 OF 2 BY JIM HALL

FLOW CONTROL FUNCTIONS (CONTINUED)

You can use many common flow control and loop structures, substr(str, pos [, n])
including if, while, do-while, for, and switch.
Return the next n characters of the string str, starting at position pos.
if (i < 10) { print; } If n is omitted, return the rest of the string str.

while (i < 10) { print; i++; } tolower(str)

do { Return the string str, converted to all lowercase.


print; toupper(str)
i++;
} while (i < 10); Return the string str, converted to all uppercase.
Other common string functions include:
for (i = 1; i < 10; i++) { print i; }
match(str, regex)
switch (n) {
Return the position of the first occurrence of the regular
case 1: print "yes"; expression regex in the string str.

default: print "no"; sub(sub, repl [, str])
} For the first matching substring sub in the string $0, replace it
with repl.
FUNCTIONS
If you include the optional string str, operate on that string instead.
Frequently-used string functions include:
gsub(sub, repl [, str])
print "hello world"
print "user:" $1 Same as sub(), but replaces all matching substrings.
print $1, $2
split(str, arr [, del ])
print i
print Splits up the string str into the array arr, according to spaces
and tabs.
Print a value or string. If you don't give a value, outputs $0 instead.
If you include the optional string del, use that as the field
Use commas (,) to put space between the values. delimiter characters.
Use spaces ( ) to combine the output.
strtonum(str)
printf(fmt, values…)
Return the numeric value of the string str. Works with decimal,
The standard C printf function. octal, and hexadecimal values.

sprintf(fmt, values…) USER-DEFINED FUNCTIONS


Similar to the standard C sprintf function, returns the new string. You can define your own functions to add new functionality, or to
make frequently-used code easier to reference.
index(str, sub)
Define a function using the function keyword:
Return the index of the substring sub in the string str, or zero
if not found. function name(parameters) {
statements
length([str]) }
Return the length of the string $0.
If you include the string str, give that length instead.

opensource.com Twitter @opensourceway | facebook.com/opensourceway | CC BY-SA 4.0

You might also like