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