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