请问如何解析这个文本啊?然后进行插入到数据库中?
文本格式如下:
a.txt:
1 09:19:30.022406 178.100.101.225 65.208.228.223 TCP 1118 > http [ACK] Seq=1360019 Ack=2128362679 Win=8280 Len=0 SLE=2128364059 SRE=2128364072
2 09:19:30.069024 178.100.101.22 65.208.228.223 TCP 1117 > http [RST] Seq=1360019 Ack=2128364072 Win=0 Len=0
------
每一行即为一条纪录,共6个字段,分别为:ID,TIME,Src_ip,Dest_ip,Proto,Info.我想把文本中每一行插入到数据库中,数据库中也有相应的表,一样的6个字段.请问如何解析这个文本啊?然后进行插入到数据库中?
问题点数:20、回复次数:13Top
1 楼lhjiang()回复于 2004-08-04 22:07:33 得分 0
国际惯例,自己先顶Top
2 楼tibet(大yi巴狼)回复于 2004-08-05 08:58:11 得分 5
用strtok函数
或者自己解析
if(line[i] != ' ')
{
token[j] = line[i];
}else{
......
}Top
3 楼CoolQ()回复于 2004-08-05 09:57:06 得分 5
用Perl的Regular Expression和DBI,就OK了。Top
4 楼lhjiang()回复于 2004-08-05 13:19:24 得分 0
用Perl的Regular Expression和DBI,就OK了。
--------这个不会啊Top
5 楼lijiangshui(南方朱雀)回复于 2004-08-05 21:51:23 得分 0
用awk不是很方便么?它就是用来做这事的啊Top
6 楼wti(wti)回复于 2004-08-06 02:12:35 得分 0
》用Perl的Regular Expression和DBI,就OK了。
》--------这个不会啊
看看书就会了,最多一两天:)
而且学会了perl,以后会给你节省很多的时间。Top
7 楼lhjiang()回复于 2004-08-06 08:33:29 得分 0
用awk我知道可以这样:
cat 20040805.txt | while read LINE
do
Col1=`echo $LINE |awk -F, '{print $1}'`
Col2=`echo $LINE |awk -F, '{print $2}'`
把用逗号分割的字符串取出来,但是我这里是空格为分隔赋,应该怎么写啊??谢谢Top
8 楼CoolQ()回复于 2004-08-06 10:03:47 得分 0
去网上找找资料,照葫芦画瓢,很简单。Top
9 楼lijiangshui(南方朱雀)回复于 2004-08-06 22:50:31 得分 0
awk默认的分隔符就是空格和TAB,你用了-F,就是把分隔符设置为逗号,去掉不就行了Top
10 楼yanedanny(守望者)回复于 2004-08-07 08:44:32 得分 0
挺有意思的。顶一下。Top
11 楼yuanweihong(拓拔思枫)回复于 2004-08-07 15:19:25 得分 5
看你用什么语言实现了,用java实现起来就简单多了,要用c就麻烦大。
getline()读入,
用strtok()解析,
我用qt写过ini文件分析类,可惜公司机器不能上网,没法给你,其实很简单的。Top
12 楼CoolQ()回复于 2004-08-07 23:35:13 得分 5
Perl是最简单的。
http://www.honeynet.org/scans/scan30/sub/5.pdf是我写的一个分析报告,上边有一些脚本,你自己研究研究吧.Top
13 楼chenyuanjing(独行客)回复于 2004-12-12 09:29:48 得分 0
upTop




