summaryrefslogtreecommitdiff
path: root/diff.awk
diff options
context:
space:
mode:
authorwukong <wukong@longaeva>2018-06-05 22:34:51 -0700
committerwukong <wukong@longaeva>2018-06-05 22:34:51 -0700
commit8f263e859e0970ce87b77addc80dec28e8fc7e82 (patch)
treeb0bdc392230c9960f5e5f5b3dea979405334628f /diff.awk
re-init
Diffstat (limited to 'diff.awk')
-rw-r--r--diff.awk37
1 files changed, 37 insertions, 0 deletions
diff --git a/diff.awk b/diff.awk
new file mode 100644
index 0000000..3923f8b
--- /dev/null
+++ b/diff.awk
@@ -0,0 +1,37 @@
+
+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] = $n
+ else
+ header[n] = n
+ }
+}
+
+NF != 0 {
+ printf("\n%s: %s\n", NR, $0)
+ if (NF > max_nf)
+ max_nf = NF
+
+ ### iterate over columns
+ for (y=1; y<=max_nf; y++) {
+ if ($y ~ number) {
+ count[y] += 1
+ data[y] = $y
+ sum[y] += $y
+ mean[y] = data[y]
+ diff[y] = data[y] - data_prev[y]
+ print header[y], data[y], sum[y], diff[y]
+ data_prev[y] = data[y]
+ }
+ }
+}