Bash 基于if语句使用awk插值数据

Bash 基于if语句使用awk插值数据,bash,awk,interpolation,Bash,Awk,Interpolation,因此,我试图通过使用awk搜索文件中的特定模式,并将值插入线性插值公式,从而实现数据收集过程的自动化。有问题的数据跟踪时间和位置,我需要插值位置等于零的时间。例如: 100 0.5 200 0.2 300 -0.3 400 -0.7 然后,我的插值如下所示: 插值时间=200+(0-0.2)*(300-200)/(-0.3-0.2) 我将用bash编写脚本,并使用bc计算器进行算术运算。但是,我没有使用awk的经验,也不知道如何正确搜索文件 我想做一些像 awk '{if ($2 &g

因此,我试图通过使用awk搜索文件中的特定模式,并将值插入线性插值公式,从而实现数据收集过程的自动化。有问题的数据跟踪时间和位置,我需要插值位置等于零的时间。例如:

100  0.5
200  0.2
300  -0.3
400  -0.7
然后,我的插值如下所示:

插值时间=200+(0-0.2)*(300-200)/(-0.3-0.2)

我将用bash编写脚本,并使用bc计算器进行算术运算。但是,我没有使用awk的经验,也不知道如何正确搜索文件

我想做一些像

awk '{if ($2 > 0) #add another statement to test if $2 < 0 on next line#}'
# If test is successful, store entries in variables or an array
next

?)


如有任何建议或意见,将不胜感激

这将为您提供结果
240

awk '{if(p2>0 && $2<0) print p1-p2*($1-p1)/($2-p2); p1=$1; p2=$2}'

awk'{if(p2>0&&$2tanks)!我必须稍微调整一下以满足我的需要,但这非常有用!
awk '{if(p2>0 && $2<0) print p1-p2*($1-p1)/($2-p2); p1=$1; p2=$2}'