我有以下一行:
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
任何提示吗?
答案 0 :(得分:1)
听起来像红宝石工作。这是一些未经测试的代码:
filter {
ruby {
code => "event.set('preabe', event.get('preabe').to_i / 100)"
}
}