Saturday, March 22, 2008

Multiple FS in AWK


Sample file:

$ cat summary.txt

A|Jan|clerk|02:45
B|Jan|Salesman|02:12
C|Jan|Accountant|03:12
A|Feb|clerk|01:10
B|Feb|Salesman|11:10
B|March|Salesman|3:10
C|Feb|Accountant|3:34

Output Required:

(First field)|(last field converted to minutes)

i.e.

A|165
B|132
C|192
A|70
B|670
B|190
C|214

This is how we can specify two field separators (| and :) with FS in awk:

$ awk 'BEGIN{FS="[|,:]"; OFS="|"} {print $1,$(NF-1)*60+$NF}' summary.txt

No comments:

© Jadu Saikia www.UNIXCL.com