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

时间:2014-09-08 19:00:38

标签: awk

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

1 5 2

6 1 8

7 9 9

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

6

4

7

感谢您的帮助! 斯蒂芬

1 个答案:

答案 0 :(得分:0)

以下是如何做到这一点:

您创建一个迭代第一行的每个元素的数组,然后在END块中再次迭代,使用数组中的值减去该列。

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

$ cat another.file 
6
4
7