【发布时间】:2015-07-30 20:48:28
【问题描述】:
所以我试图通过使用 awk 在文件中搜索特定模式并将值插入线性插值公式来自动化数据收集过程。有问题的数据跟踪时间与位置的关系,我需要插入位置等于零的时间。示例:
100 0.5
200 0.2
300 -0.3
400 -0.7
然后,我的插值是这样的:
interpolated_time = 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
插值可能需要在一个文件中执行多次。我可能需要将所有有问题的值输出到一个数组中,然后将成对的索引输入到插值公式中。 (即索引 [1,2] [3,4] [5,6] 配对在一起用于单独的插值)
我知道 awk 在逐行测试循环中工作,但我不知道是否有办法将上一行或下一行合并到测试中(可能类似于
next
或
getline
?)
任何建议或 cmets 将不胜感激!
【问题讨论】:
标签: bash awk interpolation