Arrays Awk将列乘以特定值
我对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
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中这样做,但我会有很多文件,所以编写脚本的过程会有很大帮助。