diff options
author | fenner <fenner@FreeBSD.org> | 1996-09-30 19:09:55 +0000 |
---|---|---|
committer | fenner <fenner@FreeBSD.org> | 1996-09-30 19:09:55 +0000 |
commit | a140d208b5ecc0e726bc4300cd21ab1f869df7c7 (patch) | |
tree | cbd17e19e65ecb7b39e5aa03e453ce8b56e3aede /contrib/traceroute/median.awk | |
download | FreeBSD-src-a140d208b5ecc0e726bc4300cd21ab1f869df7c7.zip FreeBSD-src-a140d208b5ecc0e726bc4300cd21ab1f869df7c7.tar.gz |
Virgin import of LBL traceroute version 1.3.2.
Obtained from: ftp://ftp.ee.lbl.gov/traceroute.tar.Z on 30-Sep-1996.
Diffstat (limited to 'contrib/traceroute/median.awk')
-rw-r--r-- | contrib/traceroute/median.awk | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/traceroute/median.awk b/contrib/traceroute/median.awk new file mode 100644 index 0000000..5935bad --- /dev/null +++ b/contrib/traceroute/median.awk @@ -0,0 +1,29 @@ +/^ *[0-9]/ { + # print out the median time to each hop along a route. + tottime = 0; n = 0; + for (f = 5; f <= NF; ++f) { + if ($f == "ms") { + ++n + time[n] = $(f - 1) + } + } + if (n > 0) { + # insertion sort the times to find the median + for (i = 2; i <= n; ++i) { + v = time[i]; j = i - 1; + while (time[j] > v) { + time[j+1] = time[j]; + j = j - 1; + if (j < 0) + break; + } + time[j+1] = v; + } + if (n > 1 && (n % 2) == 0) + median = (time[n/2] + time[(n/2) + 1]) / 2 + else + median = time[(n+1)/2] + + print $1, median + } +} |