154359Sroberto# program to produce loran tdata statistics from clockstats files 254359Sroberto# 354359Sroberto# usage: awk -f tdata.awk clockstats 454359Sroberto# 554359Sroberto# format of input record (missing replaced by -40.0) 654359Sroberto# 49228 36.852 127.127.10.1 93:241:00:00:20.812 LORAN TDATA 754359Sroberto# M OK 0 0 1169.14 -7.4 3.16E-07 .424 854359Sroberto# W CV 0 0 3329.30 -16.4 1.81E-06 954359Sroberto# X OK 0 0 1737.19 -10.5 3.44E-07 .358 1054359Sroberto# Y OK 0 0 2182.07 -9.0 4.41E-07 .218 1154359Sroberto# 1254359Sroberto# format of output record (time in nanoseconds, signal values in dB) 1354359Sroberto# MJD sec time M W X Y Z 1454359Sroberto# 49228 36.852 175.0 -7.4 -16.4 -10.5 -9.0 1554359Sroberto# 1654359Sroberto# select LORAN TDATA records with valid format 1754359Sroberto{ 1854359Sroberto if (NF >= 7 && $6 == "TDATA") { 1954359Sroberto m = w = x = y = z = -40.0 2054359Sroberto for (i = 7; i < NF - 5; i++) { 2154359Sroberto if ($i == "M" && $(i+1) == "OK") { 2254359Sroberto i += 5 2354359Sroberto m = $i 2454359Sroberto } 2554359Sroberto else if ($i == "W" && $(i+1) == "OK") { 2654359Sroberto i += 5 2754359Sroberto w = $i 2854359Sroberto } 2954359Sroberto else if ($i == "X" && $(i+1) == "OK") { 3054359Sroberto i += 5 3154359Sroberto x = $i 3254359Sroberto } 3354359Sroberto else if ($i == "Y" && $(i+1) == "OK") { 3454359Sroberto i += 5 3554359Sroberto y = $i 3654359Sroberto } 3754359Sroberto else if ($i == "Z" && $(i+1) == "OK") { 3854359Sroberto i += 5 3954359Sroberto z = $i 4054359Sroberto } 4154359Sroberto } 4254359Sroberto printf "%5s %9.3f %6.1f %6.1f %6.1f %6.1f %6.1f\n", $1, $2, m, w, x, y, z 4354359Sroberto } 4454359Sroberto} 4554359Sroberto 46