Awk将列乘以特定值

时间:2014-04-09 15:17:15

标签: 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列)。

谢谢。

1 个答案:

答案 0 :(得分: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