summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--diff.awk12
-rw-r--r--diff1.awk35
2 files changed, 40 insertions, 7 deletions
diff --git a/diff.awk b/diff.awk
index 3923f8b..41859db 100644
--- a/diff.awk
+++ b/diff.awk
@@ -11,27 +11,25 @@ NR == 1 {
header_nf = NF
for (n=1; n<=NF; n++) {
if ($n !~ number)
- header[n] = $n
+ header[n] = "d" $n
else
- header[n] = n
+ header[n] = "col_" n
+ printf("%s,", header[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]
+ printf("%g,", diff[y])
data_prev[y] = data[y]
}
}
+ printf("\n")
}
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")
+}