awk:从每列的第一个元素中减去最后一个元素并打印结果

awk:从每列的第一个元素中减去最后一个元素并打印结果,awk,Awk,关于awk,我有以下问题。我有一个包含一些列的文件,比如 1 5 2 6 1 8 7 9 9 我想计算每列的最后一个和第一个元素之间的差值:7-1=6,9-5=4,9-2=7。结果应该打印在另一个文件中,如 6 4 7 谢谢你的帮助! Stephan以下是您可以做到的: 在第一行的每个元素上创建一个迭代数组,然后在结束块中再次迭代,从数组中减去该列的值 awk ' NR==1 { for (i=1; i<=NF; i++) a[i] = $i

关于awk,我有以下问题。我有一个包含一些列的文件,比如

1 5 2

6 1 8

7 9 9
我想计算每列的最后一个和第一个元素之间的差值:7-1=6,9-5=4,9-2=7。结果应该打印在另一个文件中,如

6

4

7
谢谢你的帮助!
Stephan

以下是您可以做到的:

在第一行的每个元素上创建一个迭代数组,然后在结束块中再次迭代,从数组中减去该列的值

awk '
  NR==1 { 
    for (i=1; i<=NF; i++) 
      a[i] = $i 
  }
  END { 
    for (i=1; i<=NF; i++) 
      print $i - a[i] > ("another.file") 
  }
' file

你是怎么做的?这是一个相当简单的awk应用程序,你需要大约30秒的时间来修改你之前得到的关于一个非常类似的问题的答案来回答这个问题。如果没有,那么我们就不会通过提供答案来帮助您。获取阿诺德·罗宾斯的《有效的Awk编程》,第三版。
$ cat another.file 
6
4
7