gawk 中的前向差异三角形

gawk 中的前向差异三角形

我需要一个gawk脚本(不是单行脚本,我需要一个函数)。给定一行整数,即

0 2 4 1 9 5 1 1

该函数应生成连续的前向绝对差,因此:

0 2 4 1 9 5 1 1
 2 2 3 8 4 4 0
  0 1 5 4 0 4
   1 4 1 4 4
    3 3 3 0
     0 0 3
      0 3
       3

我该如何使用 来做到这一点gawk

答案1

这里是

#!/usr/local/bin/awk -f 

{       
        ns = 0
        while(NF > 0) {
                for(i = 0; i < ns; i++) printf " "
                print
                for(i = 1; i < NF; i++) {
                        $i = abs($i-$(i+1))
                }       
                NF--
                ns++
        }       
}       

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

相关内容