Arrays Awk将列乘以特定值

Arrays Awk将列乘以特定值,arrays,awk,Arrays,Awk,我对awk非常陌生,我正在使用越来越多的工具来处理我正在运行的模型的输出文件。现在,我遇到了一个乘法问题 我想计算百分比的相对变化 例如: A B 1 150 0 2 210 10 3 380 1000 ... 我想计算Ax=(Ax-A1)/A1*100 输出: New_A B 1 0 0 2 10 40 3 1000 153.33 ... 我可以将列相乘,但不知道如何将值固定到文本文件中的某个位置(即第1行第1列) 谢谢。假设您的实际文件没有“A B”标题和行号: $ cat fi

我对awk非常陌生,我正在使用越来越多的工具来处理我正在运行的模型的输出文件。现在,我遇到了一个乘法问题

我想计算百分比的相对变化

例如:

  A B
1 150 0
2 210 10
3 380 1000
...
我想计算Ax=(Ax-A1)/A1*100

输出:

  New_A B
1 0 0
2 10 40
3 1000 153.33
...
我可以将列相乘,但不知道如何将值固定到文本文件中的某个位置(即第1行第1列)


谢谢。

假设您的实际文件没有“A B”标题和行号:

$ cat file
150 0
210 10
380 1000
$ awk 'NR==1 {a1=$1} {printf "%s %.1f\n", $2, ($1-a1)/a1*100}' file | column -t
0     0.0
10    40.0
1000  153.3

ab
是我的输入文件,理想情况下,我想要一个输出,比如
B computed\u A
。我会在Excel或Matlab中这样做,但我会有很多文件,所以编写脚本的过程会有很大帮助。