logstash - 将字符串转换为十进制值 Logstash 变异
问题描述
我有以下行:
012018121212XTED11 010FII TRXE CORCI R$ 000000000169000000000017450000000001690000000000172700000000017170000000001717000000000175000051000000000000002011000000000003474670000000000000009999123100000010000000000000BRXTEDCTF006143\r
所以我创建了一个过滤器来提取价格:
grok {
match => ["message", "(?<tipo_registro>.{2})(?<data_pregao>.{8})(?<codbdi>.{2})(?<codneg>.{12})(?<tpmerc>.{3})(?<nomres>.{12})(?<especi>.{10})(?<prazot>.{3})(?<modref>.{4})(?<preabe>.{13})(?<premax>.{13})(?<premin>.{13})(?<premed>.{13})(?<preult>.{13})(?<preofc>.{13})(?<preofv>.{13})"]
}
价格是字段preabe,但我需要在两位数之前添加一个点以转换为浮点数,所以这是我在字符串中的价格:
00001650
我需要添加“。” ,所以我会有
000016.50
现在转换为浮动,我将拥有
16.50
有小费吗 ?
解决方案
听起来像是 ruby 的工作。这是一些未经测试的代码:
filter {
ruby {
code => "event.set('preabe', event.get('preabe').to_i / 100)"
}
}
推荐阅读
- database - 使用 typeORM 批量插入/更新的有效方法
- authentication - 两个 Yii2 应用登录冲突
- android - Flutter SDK 目录相关问题
- javascript - 每当在底部添加新 div 时都需要滚动到底部
- python-3.x - 有人可以帮我解决我的python代码中的错误吗?
- docker - 为什么我在 docker 中使用 Go 得到 404
- docker - 豆荚没有被创建,也没有在很长一段时间后运行
- sqlite - 被解雇的 Dismissible 小部件仍然是颤动树的一部分
- c++ - 如何将色彩空间信息添加到在 OPenCV 中使用“imwrite”创建的 Radiance HDR 格式文件
- tensorflow.js - 启用在本地计算机中使用 Tensorflow JS