Gawk
AWK is a scripting language that was originally designed for manipulating tables and presenting them in human-readable formats. It is useful on the commandline, I'd prefer to use a more powerful language than awk than use it for scripting.
WARNING:
There are two main variations of the unix coreutils (Gnu/BSD), each has different parameters etc. If you are expecting to use awk across different platforms, make no assumptions.
Notes
gawk usage gawk variables gawk datatypes gawk conditionals gawk loops gawk print
Syntax
split
You can't call awk -F from within an awk script. But you can use split to tokenize within an awk script.
split("this is my string", a, " ") a[1] = this a[2] = isecho "aaa bbb cc/11/22" \ | awk '{ split($3, a, "/"); print(a[2]); }' # 11NOTE:
awk has no way of measuring size of an array. You can however use split on a variable, and count the number of tokens
WARNING:
awk array indexes start at 1
match
match checks for a matching string, returns char number if found, otherwise returns a 0
match($0, "searchterm")echo "abcdefg" | awk '{var=match($0, "cd"); print var}' #> 3 echo "abcdefg" | awk '{var=match($0, "zef"); print var}' #> 0 echo "abcdefg" | awk '{ if(match($0, "cd")) { print "match found"; } }' #> match foundsystem
Executes a command in shell or cmd from an awk script. Assigning to a variable only gives return value (1,0)
system(ls -la);math
var+= 1; var=( (100/2) * 3 );References
http://www.funtoo.org/wiki/Awk_by_Example,_Part_1 http://www.math.utah.edu/docs/info/gawk_7.html