diff options
Diffstat (limited to '')
| -rw-r--r-- | diff.awk | 37 |
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] + } + } +} |
