summaryrefslogtreecommitdiffstats
path: root/contrib/traceroute/median.awk
diff options
context:
space:
mode:
authorfenner <fenner@FreeBSD.org>1996-09-30 19:09:55 +0000
committerfenner <fenner@FreeBSD.org>1996-09-30 19:09:55 +0000
commita140d208b5ecc0e726bc4300cd21ab1f869df7c7 (patch)
treecbd17e19e65ecb7b39e5aa03e453ce8b56e3aede /contrib/traceroute/median.awk
downloadFreeBSD-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.awk29
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
+ }
+}
OpenPOWER on IntegriCloud