我有两个以下形式的文件
文件1:
#fileheader1
0 123
1 456
2 789
3 999
4 112
5 131
6 415
etc.
文件2:
#fileheader2
0 442
1 232
2 542
3 559
4 888
5 231
6 322
etc.
如何获取每个文件的第二列,将其除以一个值,然后减去另一个值,然后输出包含新值的新的第三个文件?
我希望输出文件具有以下形式
#outputheader
0 123/c-422/k
1 456/c-232/k
2 789/c-542/k
etc.
其中 c 和 k 是我可以插入脚本的数字
我看到过这个问题:subtract columns from different files with awk
但我不知道如何使用 awk 自己完成此操作,有谁知道如何执行此操作或可以解释链接问题中发生的情况,以便我可以尝试修改它?
最佳答案
我会写:
awk -v c=10 -v k=20 ' ;# pass values to awk variables
/^#/ {next} ;# skip headers
FNR==NR {val[$1]=$2; next} ;# store values from file1
$1 in val {print $1, (val[$1]/c - $2/k)} ;# perform the calc and print
' file1 file2
输出
0 -9.8
1 34
2 51.8
3 71.95
4 -33.2
5 1.55
6 25.4
etc. 0
关于bash - 将不同文件的列值除以一个常数,然后输出一个减去另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27359546/