summaryrefslogtreecommitdiff
path: root/diff.awk
diff options
context:
space:
mode:
Diffstat (limited to 'diff.awk')
-rw-r--r--diff.awk32
1 files changed, 20 insertions, 12 deletions
diff --git a/diff.awk b/diff.awk
index fb93b57..03bc398 100644
--- a/diff.awk
+++ b/diff.awk
@@ -13,13 +13,18 @@ BEGIN {
}
NR == 1 {
- ### orig columns
+ ### orig data columns
for (n=1; n<=NF; n++) {
- ($n !~ number) ? header[n] = $n : header[n] = "col" n
+ if ($n !~ number) {
+ header[n] = $n
+ dheader[n] = "d" $n
+ }
+ else {
+ header[n] = "col" n
+ dheader[n] = "dcol" n
+ }
printf(header[n])
- ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol" n
- if (n <= NF)
- printf(OFS)
+ printf(OFS)
}
### diff columns
@@ -34,12 +39,12 @@ NF {
if (NF > nf_max)
nf_max = NF
- ### orig columns
+ ### data columns
for (y=1; y<=nf_max; y++) {
if ($y == header[y] || $y == dheader[y])
continue
if ($y ~ number)
- printf($y)
+ printf("%.12g", $y)
else
printf("")
printf(OFS)
@@ -47,15 +52,18 @@ NF {
### diff columns
for (y=1; y<=nf_max; y++) {
+ if ($y == header[y] || $y == dheader[y])
+ continue
if ($y ~ number) {
data[y] = $y
(data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = ""
data_prev[y] = data[y]
- printf(diff[y])
- if (y < nf_max)
- printf(OFS)
+ printf("%.12g", diff[y])
}
- diff[y] = ""
+ else
+ diff[y] = ""
+ if (y < nf_max)
+ printf(OFS)
}
- printf("\n")
+ printf(ORS)
}