Awk
http://www.grymoire.com/Unix/Awk.html
Awk syntax looks like pattern { action }
.
Awk goes through lines. If the pattern matches a line, the action happens.
We refer to input columns using $N where N is the column number.
Execution
#!/usr/bin/awk -f
will let you make a .awk file into a script that you can run, passing it the file to be processed.
Actions
print
prints things.
if (condition) statement else other
while (condition) statement
for (epxression; condition; expression) statement
for (x in arr) statement
Keywords
BEGIN
and END
are special patterns that happen before and after each line.
Operators
Basic arithmatic works in a C-like way.
The spacebar is string concatenate.
Conditions
= !
> >= < <= all work as normal.
~ and !~ mean regex match and not-match.
&& || ! work as normal.
Variables
Variables are assigned and referenced by name.
a = 3
print a
Assignment can be combined with an operator, as in C.
Special Variables
NF
number of fields
NR
line number
FS
field separator
RS
row separator
ORS
output row separator
FILENAME
current file
Strings
Awk doesn't expand variables inside strings.
It does do escaping.