I forgot most of awk after college. Now that I look at it again, it does help in many cases when I need to work with csv/tsv files. There is no need to write a simple python script to parse lines out and do some printing.

Sample log lines

[code] 07.46.199.184 [28/Sep/2010:04:08:20] “GET /robots.txt HTTP/1.1” 200 0 “msnbot” 123.125.71.19 [28/Sep/2010:04:20:11] “GET / HTTP/1.1” 304 - “Baiduspider” [/code]

Sample cmds

[code] awk ‘{print $0}’ awk ‘{print $1}’ logs.txt awk ‘{print $1, $(NF-2) }’ logs.txt awk ‘{print NR “) " $1 " -> " $(NF-2)}’ logs.txt awk ‘{print $2}’ logs.txt awk ‘{print $2}’ logs.txt | awk ‘BEGIN{FS=”:"}{print $1}’ awk ‘{print $2}’ logs.txt | awk ‘BEGIN{FS=":"}{print $1}’ | sed ’s/\[//’ awk ‘{if ($(NF-2) == “200”) {print $0}}’ logs.txt awk ‘{a+=$(NF-2); print “Total so far:”, a}’ logs.txt awk ‘{a+=$(NF-2)}END{print “Total:”, a}’ logs.txt [/code]

Note: awk is 1-based. $NF is number of fields. NR is row number. FS is field separator.

Ref: https://gregable.com/2010/09/why-you-should-know-just-little-awk.html