将日志文件转换成标准 csv

log 文件有 3 列,分隔符是空格。

2022-06-01 11:00:00 wt.nm=aa&wt.ti=t1&

2022-06-02 12:00:00 wt.nm=ab&wt.ti=t2&

2022-06-03 10:00:00 wt.nm=ac&wt.ti=t3&

用 Java 将 log 文件转为带标题的 csv 文件,需要保留前 2 列,将第 3 列按 "&" 拆分,取前 2 部分的等号右边的字符串,形成新的第 3 列和第 4 列:

date,time,name,title

2022-06-01,11:00:00,aa,t1

2022-06-02,12:00:00,ab,t2

2022-06-03,10:00:00,ac,t3

SPL脚本:


A

1

=file("data.log").import(;," ")

2

=A1.new(#1:date,#2:time,(t=#3.split("&").(~.split("=")))(1)(2):name,t(2)(2):title)

3

>file("result.csv").export@tc(A2)

A1:将文本文件读为二维表,分隔符为空格。

A2:用计算列新建二维表,#1 表示第 1 列,t(1)(2) 表示序列的第 1 个成员的第 2 个子成员。

A3:将二维表写入文本文件,@c 表示分隔符为逗号,@t 表示带标题。

Java 集成 SPL 可参考 Java 如何调用 SPL 脚本

问题来源:https://stackoverflow.com/questions/72587905/how-to-parse-log-file-to-csv-file-in-java