test: IPADDR.awk (NEW) - sorted numbers for IPADDR\d+

glen glen at pld-linux.org
Fri Jan 19 13:18:14 CET 2007


Author: glen                         Date: Fri Jan 19 12:18:14 2007 GMT
Module: test                          Tag: HEAD
---- Log message:
- sorted numbers for IPADDR\d+

---- Files affected:
test:
   IPADDR.awk (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: test/IPADDR.awk
diff -u /dev/null test/IPADDR.awk:1.1
--- /dev/null	Fri Jan 19 13:18:14 2007
+++ test/IPADDR.awk	Fri Jan 19 13:18:09 2007
@@ -0,0 +1,30 @@
+#!/bin/awk
+BEGIN {
+    n = 0;
+}
+/^IPADDR[0-9]+=/ {
+    s = $0;
+    gsub(/^IPADDR/, "", s); gsub(/=.*/, "", s);
+    a[++n] = int(s);
+}
+END {
+    if (n > 0) {
+        isort(a, n);
+        for (i = 1; i <= n; i++) {
+            print "a["i"]=" a[i];
+        }
+    }
+}
+
+# insertion sort of A[1..n]
+# copied from mawk manual
+function isort(A,n,    i,j,hold) {
+    for (i = 2; i <= n; i++) {
+        hold = A[j = i]
+        while (A[j-1] > hold) {
+            j-- ; A[j+1] = A[j]
+        }
+        A[j] = hold
+    }
+    # sentinel A[0] = "" will be created if needed
+}
================================================================


More information about the pld-cvs-commit mailing list