Linux 脚本的聚合输出
所以,我有点迷路了 我在试着检测出iBeacons的存在 我有一个脚本,它输出如下数据:Linux 脚本的聚合输出,linux,shell,awk,Linux,Shell,Awk,所以,我有点迷路了 我在试着检测出iBeacons的存在 我有一个脚本,它输出如下数据: F992A0DE-5A63-4BC1-80F9-5F47A53A0C31 1 1 -60 -55 1.09090 1.87003 我可以控制输出,以便在必要时添加分号或类似的内容 问题是:我需要聚合脚本的输出。 第一个字段表示检测到的信标的UID 我希望总是对每个出现的UID取20行,将第4个值相加,得到一个平均值。 如果此平均值超过某个值,则应发送http请求 我真的不知道如何继续前进。 首先将输出推送
F992A0DE-5A63-4BC1-80F9-5F47A53A0C31 1 1 -60 -55 1.09090 1.87003
我可以控制输出,以便在必要时添加分号或类似的内容
问题是:我需要聚合脚本的输出。
第一个字段表示检测到的信标的UID
我希望总是对每个出现的UID取20行,将第4个值相加,得到一个平均值。
如果此平均值超过某个值,则应发送http请求
我真的不知道如何继续前进。
首先将输出推送到一个文件会更好吗?
我找到了一些线程,认为我可以用awk完成这项任务,这是正确的方法吗?
awk
来拯救
像这样的?没有测试
awk -v threshold=$th 'c[$1]<20 {s[$1]+=$4; c[$1]++}
END {for(k in a)
{avg = s[$1]/c[$1];
if(avg>threshold) print k,a[k]}}' file
awk-v threshold=$th'c[$1]threshold)打印k,一个[k]}文件
设置所需的阈值(此处假定为变量
$th
)第一个字段表示信标的UID
:这里的第一个字段是什么意思,第一个字段由-
或空格“`”分隔?另外,向我们展示输入和输出对不起,第一个字段的意思是:“F992A0DE-5A63-4BC1-80F9-5F47A53A0C31”各部分之间用空格隔开