#!/usr/bin/awk -f BEGIN { FS="," } /^\$GPZDA,/ { day=$3; mon=$4; year=$5 hour=substr($2,1,2) min=substr($2,3,2) sec=substr($2,5,2) cmd="date -d '"hour":"min":"sec" "mon"/"day"/"year" GMT'" cmd | getline date close(cmd) } /^\$GPGGA,/ { gpgga=1 if ($3 != "") { #lat=35 + ($3-3500) / 60 #lon=149 + ($5-14900) / 60 lat=$3; lon=$5 i=int(lat/100); lat=-((lat-i*100)/60 + i); i=int(lon/100); lon=(lon-i*100)/60 + i; alt=$10 } else { lat=1001; lon=1001; alt=1001 } } /^\$GPVTG,/ { bearing = $2 speed = $8 if (gpgga) printf("%10.6f %10.6f %6d %5.1f %12.6f %s\n", lat, lon, alt, speed, bearing, date) gpgga=0 }