9.8 用制表符作为分隔符拆分字符串
用制表符作为分隔符,将字符串拆分为字符串序列。
把日志文件整理成结构化数据(以 USERID,UNAME,IP,TIME,URL,BROWSER,LOCATION, MODULE 为字段的序表)。日志的格式:第一行是 IP, TIME, GET, URL, BROWSER; 第二行是 MODULE; 第三行是 USERID, UNAME, LOCATION。
使用函数 s.split(d) 将字符串 s 通过分隔符 d 拆成序列返回。
脚本:
A | |
---|---|
1 | =file(“log.txt”).read@n() |
2 | =A1.group((#-1)\3) |
3 | =A2.(~.conj(~.split(“\t”))) |
4 | =A3.new(~(7):USERID,~(8):UNAME,~(1):IP,~(2):TIME,~(4):URL,~(5):BROWSER,~(9):LOCATION,left(~(6).split(“:”)(2),-1):MODULE) |
A1 从文件中按行读入字符串组成的序列
A2 使用 group 函数将每三行分为一组
A3 使用 s.split() 函数,每组按”\t”拆分每一行,合并为一个序列
A4 生成结构化数据
运行结果:
USERID | UNAME | IP | TIME | URL | BROWSER | LOCATION | MODULE |
---|---|---|---|---|---|---|---|
47356 | Jessica | 10.10.10.143 | 2013-04-01 21:14:44 | /p/pt301/index.jsp | Mozilla/6.0 | Chicago | production |
419 | Jacob | 10.10.2.76 | 2013-04-01 21:18:50 | /h/homepage.jsp | Chrome/35 | Houston | homepage |
… | … | … | … | … | … | … | … |