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 }

관련 정보