结构化解析,去除空行

【问题】

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,创建一个由name,id,place,details组成的新序表,用于保存最终的计算结果。

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值