gpt4 book ai didi

linux - 在 linux 中的两个不同文件中做数学运算

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:59:58 25 4
gpt4 key购买 nike

我有两个数据文件,每个文件都有 3 列。如何在linux或awk中将这两个文件中的第三列中的相应元素分开并写入另一个文件中。

Experiment Replica Mean
General0 0 408.5
General0 1 461.162
General0 2 428.23
General0 3 373.771
General0 4 396.243

Experiment Replica Mean
General0 0 124.674
General0 1 142.017
General0 2 145.206
General0 3 118.493
General0 4 126.985

Experiment Replica Mean
General0 0 124.674 / 408.5
General0 1
General0 2
General0 3
General0 4

最佳答案

awk 'FNR==NR{a[$1,$2]=$3;next}FNR==1{print;next}{print $1,$2,$3/a[$1,$2]}' f1 f2
Experiment Replica Mean
General0 0 0.3052
General0 1 0.307955
General0 2 0.339084
General0 3 0.31702
General0 4 0.320473

提示:column -t 是将输出格式化为表格的好工具:

awk .... | column -t
Experiment Replica Mean
General0 0 0.3052
General0 1 0.307955
General0 2 0.339084
General0 3 0.31702
General0 4 0.320473

解释:

FNR==NR {            # FNR==NR is only true in the first file 
a[$1,$2]=$3 # Build array, keys are field 1 and 2, value is field 3
next # Skip to the next line in the file
}
FNR==1 { # If we are on the first line in the second file
print # Print the line
next # Go grab the next line
}
{
x=$3/a[$1,$2] # Do the math (the value of a[$1,$2] is $3 from file1)
print $1,$2,x # print the output
}

要以这种形式运行脚本,请将其保存到文件 script.awk 并执行 awk -f script.awk f1 f2

关于linux - 在 linux 中的两个不同文件中做数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com