summaryrefslogtreecommitdiff
path: root/diff1.awk
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--diff1.awk35
1 files changed, 35 insertions, 0 deletions
diff --git a/diff1.awk b/diff1.awk
new file mode 100644
index 0000000..41859db
--- /dev/null
+++ b/diff1.awk
@@ -0,0 +1,35 @@
+
+BEGIN {
+ sign = "[+-]?"
+ decimal = "[0-9]+[.]?[0-9]*"
+ fraction = "[.][0-9]*"
+ exponent = "([Ee]" sign "[0-9]+)?"
+ number = "^" sign "(" decimal "|" fraction ")" exponent "$"
+}
+
+NR == 1 {
+ header_nf = NF
+ for (n=1; n<=NF; n++) {
+ if ($n !~ number)
+ header[n] = "d" $n
+ else
+ header[n] = "col_" n
+ printf("%s,", header[n])
+ }
+}
+
+NF != 0 {
+ if (NF > max_nf)
+ max_nf = NF
+
+ ### iterate over columns
+ for (y=1; y<=max_nf; y++) {
+ if ($y ~ number) {
+ data[y] = $y
+ diff[y] = data[y] - data_prev[y]
+ printf("%g,", diff[y])
+ data_prev[y] = data[y]
+ }
+ }
+ printf("\n")
+}