结构化解析,去除空行

【问题】

I have a text data like

name = abc

id = 123

Place = xyz

Details = some texts with two line



name = aaa

id = 54657

Place = dfd

Details = some texts with some lines

I need to place them in a table or csv and my output should look like

name       id     Place       Details    

abc        123     xyz         Some texts with two line

aaa        54657   dfd         Some texts with some lines

【回答】

源数据里不确定有多少空行,只需去掉空行并取出等号右边的数据,之后每四行分一组并按顺序写入二维表。用Java硬码太麻烦,可以用集算器按思路写出代码,并用JDBC的方式集成。SPL如下:


A

1

=file("D:\\source.txt").import@i()

2

=A1.select(~).(~.split@t("=")(2))

3

=A2.group((#-1)\4)

4

=A3.new(~(1):name,~(2):id,~(3):place,~(4):details)

 

A1读取文本文件的内容,将每一行作为一个成员返回成序列。

undefined

A2:将A1中的每个成员,通过分隔符"="拆成序列,再做一下两边trim去除空白符。最后返回第二个成员,即等号右边的数据。

undefined

A3:分组,每四行分一组。

 undefined

A4:根据A3创建一个由nameidplacedetails组成的新序表,用于保存最终的计算结果。

undefined

A4计算结果还可以直接写入文本文件:A5=file("D:\\result.txt").export@t(A4)

或将A4计算结果插入数据库:A6=myDB1.update@i(A4, tableName,name:name,id:id,place:place,details:details;id)