结构化后再过滤

【问题】

I have a long list made up of text like this

    Email: example@example.com

    Language Spoken: Sample

    Points: 52600

    Lifetime points: 100000

    Country: US

    Number: 1234

    Gender: Male

    Status: Activated

    =============================================

I need a way of filtering this list so that only students with higher than 52600 points gets shown. I wanted to know how this could be done in a bat file or some similar solution? I have tried excel but no luck.

【回答】

将文本每8行分为一组,过滤出这样的组:第3个成员按冒号拆分,拆分出的第2部分大于52600。最后将这些组的组内成员按顺序纵向拼在一起。上述算法涉及分组运算、有序运算、结构化运算,适合用SPL


A

1

=file("d:\\data.txt").import@i()

2

=A1.group((#-1)\8)

3

=A2.select(int(substr(~(3),"Points:"))>52600)

4

=A3.conj()

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

A2:对序列A1进行分组,每8个分成一组。

A3:先获取序列A2的每组中第3个成员里Points:后边的内容,再转化为int型,最后选出大于52600的分组

A4A3每组的组内成员按顺序纵向拼在一起。