中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 19:47
48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]如果将文件中相同的部分替换掉?
可打印版本  1,726 / 20
第1楼 honghunter 发表于 2007-12-05 14:27
中级用户 发帖 135 积分 321
[求助]如果将文件中相同的部分替换掉?
我要处理的文件内容如下,
希望能将其中每行上面相同的部分替换成“,”,从而生成一个csv文件。




我现在的做法是人工分析出相同的部分,然后通过类似下面的批处理来完成替换:


第2楼 honghunter 发表于 2007-12-05 14:29
中级用户 发帖 135 积分 321
我的期望是能自动识别出每行中相同的部分,比如我上面写到的“出售详情####>>>”、"(出售)详情: 房产编号:"等等。
第3楼 honghunter 发表于 2007-12-05 14:30
中级用户 发帖 135 积分 321
不一定费用批处理完成,主要探讨识别的思路。

主要的困难就是长度和位置的不固定。
第4楼 honghunter 发表于 2007-12-05 15:59
中级用户 发帖 135 积分 321
说一下背景。

我从\fangduo.com下载房屋的详情网页,转成TXT,得到:




然后希望能提取其中各项信息来生成CSV文件。

目前的做法是我先把它转成一个长字符串,手工整理出其中重复的部分。然后进行替换。比如
fr data.txt -f:"出售详情####>>>" -t:","
最后得到CSV文件。

现在就是觉得这样的手工整理其中重复的部分是在太累了,研究用怎么样的思路可以写小程序来达到自动分析和提取的效果。
第5楼 lxmxn 发表于 2007-12-05 16:43
版主 发帖 4,938 积分 11,386
看了半天,看得一头雾水,到底要达到什么样的要求?你所说的“重复”是什么意思?

最好举例说明源文件的格式,然后说明希望得到的文件格式。

另外,fr 是你自己做的脚本么?
第6楼 huahua0919 发表于 2007-12-05 19:00
银牌会员 发帖 780 积分 1,608
雾水中.....
第7楼 honghunter 发表于 2007-12-05 23:01
中级用户 发帖 135 积分 321
Originally posted by lxmxn at 2007-12-5 04:43 PM:
看了半天,看得一头雾水,到底要达到什么样的要求?你所说的“重复”是什么意思?

最好举例说明源文件的格式,然后说明希望得到的文件格式。

另外,fr 是你自己做的脚本么?



不好意思,可能没说明白,我重新说一下:

我现在得到的数据每行都想1楼那样,类似下面这样:


上面这是3行。

我现在想要做的
1,就是想出一个思路来识别出其中每行重复的内容,也就是首先要能识别出其中的下列信息是重复的(只是“ (*)”部分不同)

##上海(*)二手房出售(地址:(*))详情####房产编号: (*)##省 市: (*) 物业名称: (*)##所在区县: (*) 物业地址: (*)……

2,第二步就是把识别出来的这些重复(相同)的部分,在替换成“,”,把数据文件变成CSV格式文件,以便后续的进一步处理。
第8楼 honghunter 发表于 2007-12-05 23:05
中级用户 发帖 135 积分 321
附件是待处理的样本数据。

附件
data.rar (67.06 KiB)
第9楼 honghunter 发表于 2007-12-05 23:13
中级用户 发帖 135 积分 321
fr是一个用来查找替换的小工具。

===============================================================================
find and replace Ver 2.0.3.624 by BaiYang / 2004 - 2006, Freeware
===============================================================================
Find string in files or pipe, and replace it to another string

USAGE: fr [filePattern1 filePattern2 ...] {FindOption:StringToFind}
{ReplaceOption:StringToReplacement} [OtherOptions]


附件是希望的处理后的情况

附件
data.rar (61.43 KiB)
第10楼 everest79 发表于 2007-12-05 23:22
金牌会员 发帖 1,127 积分 2,564
MS_office 中有专门解决这个的方案
设定execl的源位置为那个网站,剩下的记不清了,采集到后你想存什么格式都行
第11楼 honghunter 发表于 2007-12-05 23:55
中级用户 发帖 135 积分 321
Originally posted by everest79 at 2007-12-5 11:22 PM:
MS_office 中有专门解决这个的方案
设定execl的源位置为那个网站,剩下的记不清了,采集到后你想存什么格式都行



前面给大家看的待处理的数据,是抓几个网页组合出来的。

我对excel了解有限,但是设置源位置的方式,我好像只成功的抓到一个页面上的信息。

能否实现:按照类似下面链接指向页面作为列表,把几千条(需要翻页)信息的详情(每一条点开)提取成excel哪?
http://www.fangduo.com/sh/sellsearch.asp?wysx=%D7%A1%D5%AC&yx=%B3%F6%CA%DB&city=%C9%CF%BA%A3&quyu=&wylx=&shi=&ting=&gezhong=&wydz=&zj1=50&zj2=80&sx=300
第12楼 zh159 发表于 2007-12-06 00:19
金牌会员 发帖 1,467 积分 3,687
估计是要处理成这样:
金榜三期,沧源路770弄, ,,上海,金榜三期,闵行,沧源路770弄……
林梅新村,三林路788弄,64,上海,林梅新村,浦东,三林路788弄……
平南一村,平南一村,F52836384,上海,平南一村,闵行,平南一村……
第13楼 lxmxn 发表于 2007-12-06 01:02
版主 发帖 4,938 积分 11,386
重复的部分是不是固定格式的?

如果不是固定的,你的意思是不是要让程序来找到这些重复的部分,然后替换成(,)?
第14楼 junchen2 发表于 2007-12-06 01:08
高级用户 发帖 219 积分 537 来自 杭州--半山
awk "NF>0{sub(/省 市/,\",\");sub(/房  型:/,\",\");sub(/万元\/套/,\",\");sub(/备  注:/,\",\");sub(/房  龄:/,\",\");gsub (/元\/平方米·月/,\",\");gsub(/平方米/,\",\");sub(/>>>联系方式/,\",\");for(i =2;i<=NF;i++){if($i~/#+.*:/)gsub(/#+.*:/,\",\",$i);if($i~/#/)gsub(/#+/,\",\",$i);if($i~/:$/)gsub(/.*:$/,\",\",$i)};gsub(/+/,\"\");print $0}" dat.txt



上海金榜三期二手房出售(地址:沧源路770弄)详情####房产编号:,上海,金榜三期,闵行,沧
源路770弄,,2室1厅1卫,6年,产权,74,,81.34,,,,,南,1/6,多层住宅,,,豪华,银行,邮电局,
超市,医院,公园,学校,商场,菜场,,中介勿扰,提前联系,2007-12-3,不限,,,,(鼎族房产东川
店),联系,朱庆龙,13681834310,13681834310,464131674,



用gawk工具可能可以,写成这样,真怕挨打:P:P
下面是一个前辈搜集的工具。里面有gawk
http://www.vkill.net/tools.html

[ Last edited by junchen2 on 2007-12-6 at 01:37 AM ]
第15楼 everest79 发表于 2007-12-06 02:43
金牌会员 发帖 1,127 积分 2,564
Originally posted by honghunter at 2007-12-5 11:55 PM:



前面给大家看的待处理的数据,是抓几个网页组合出来的。

我对excel了解有限,但是设置源位置的方式,我好像只成功的抓到一个页面上的信息 ...

静态的html,你在导入任一页的WEB数据时只需要先将那个查询保存下来,本来就是文本格式,查询内容除了web地址有变化外其它是一样的,这样你可以通过脚本或宏来动态引用这个查询,并可以定义在每查询完毕后只按你规定的格式来保留相应表格的数据
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023