多列文件中前一个值减去后一个值如何得到绝对值?

How to get absolute value after subtracting the following value by the previous value in a file with multiple colomns?

我有一个包含数字的文件。

1 34 44 44 46

5 35 40 40 45

6 36 28 30 40

我的目标是让每一列在用前一列减去以下值后具有绝对值,如下所示:

1 34 44 44 46

4 1 4 4 1

1 1 12 10 5

我用过

cat File.txt | awk '{for(i=1; i<=$i-1 ;i++)$i=(a[i]-=$i)}END{print  >=0 ?  : 0 - }'

但我只得到了第一列减法的绝对值。 我也尝试了 $0 而不是 $1 但我没有得到正确的输出。 有谁知道如何改进上述命令以获得我想要的输出?

test.awk

function abs(x){
    return ((x < 0.0) ? -x : x)
}
{                               

    for(i=1; i<=$i ;i++) {a[i]=abs(p[i]-$i)}
}
{
    for(i=1; i<=$i ;i++) {p[i]=$i;}     
}
/[0-9]/{
    for (i in a) {printf "%s ",a[i]};print "";print ""
}

运行如下:

 awk -f test.awk <path_to_your_file>