中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]截取然后替换 上一主题 | 下一主题
5600549976
新手上路





积分 11
发帖 11
注册 2009-4-19
状态 离线
『楼 主』:  [求助]截取然后替换

有一堆网页文件,每个网页文件都含有一个<h1>aaaaa</h1>标记,aaaaa有四种类型 :
1.精装版《机械工程控制基本理论》西安交大出版社
2.(机械工程控制基本理论)西安交大出版社
3.机械工程控制基本理论(西安交大出版社)
4.机械工程控制基本理论


现在我想做的是
(1)如果aaaaa是类型1,把书名号中的内容(不包括书名号)替换此网页中的
<code>点击查看<a href=http://{$url}>书籍名称</a>内容</code>
中的"书籍名称"
(2)如果aaaaa是类型2,把括号中的内容(不包括括号)替换替换此网页中的
<code>点击查看<a href=http://{$url}>书籍名称</a>内容</code>
中的"书籍名称"
(3)如果aaaaa是类型3,去掉括号中的内容以及括号,然后把剩下的内容替换替换此网页中的
<code>点击查看<a href=http://{$url}>书籍名称</a>内容</code>
中的"书籍名称"
(4)如果aaaaa是类型4,直接把内容替换就可以

请问用使用FR.EXE批处理如何实现自动判断网页是以上那种类型并且实现全自动批量替换(直接在源文件上改,不需要生成新的文件)

2009-4-21 01:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
5600549976
新手上路





积分 11
发帖 11
注册 2009-4-19
状态 离线
『第 2 楼』:  

有人帮帮我么~~  麻烦大家了

2009-4-21 01:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 3 楼』:  

书籍名都一样,用sed很方便
sed "s/>书籍名称</>机械工程控制基本理论</g" a.htm


附件 1: sed.rar (2009-4-21 02:08, 40.33 K,下载次数: 6)
2009-4-21 02:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  Re 3楼

建议不要重复上传附件,太浪费论坛空间了:)
批处理室附件收集专用帖http://www.cn-dos.net/forum/viewthread.php?tid=25914



2009-4-21 02:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 5 楼』:  

没全明白,迷糊。
把原文件传上来看看




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-4-21 02:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 6 楼』:  

我很懒就大概的写一个样子,正则表达式写得不是很精确。

for /f "tokens=1* delims=" %%a in ('fr xx.html -rnnlic:".*<h1>.+《(.+)》.*</h1>.*" -t:"\1" -stdout') do (
    echo 得到类型1书名: %%a
    fr -f:"书籍名称" -t:"%%a" xx.html
)




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-4-21 02:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
5600549976
新手上路





积分 11
发帖 11
注册 2009-4-19
状态 离线
『第 7 楼』:  

yishanju大哥的批处理很棒,但有个很大的问题,我把批处理改成
for /f "tokens=1* delims=" %%a in ('fr *.html -rnnlic:".*<h1>.+《(.+)》.*</h1>.*" -t:"\1" -stdout') do (
    echo 得到类型1书名: %%a
    fr -f:"书籍名称" -t:"%%a" *.html
)
今天把批处理拿到学校机房用的时候,处理一批文件时,批处理首先会遍历所有的HTML文件,然后把找到的每个HTML文件所有的%%a写入每个HTML里面,结果造成每个HTML文件里面都有所有HTML文件里的书名,应该怎么改使批处理处理完第一个文件后,然后处理第二个,不会相互影响

[ Last edited by 5600549976 on 2009-5-10 at 00:22 ]

2009-5-10 00:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
5600549976
新手上路





积分 11
发帖 11
注册 2009-4-19
状态 离线
『第 8 楼』:  

yishanju大哥还在吗

2009-5-10 01:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
5600549976
新手上路





积分 11
发帖 11
注册 2009-4-19
状态 离线
『第 9 楼』:  

还有谁能帮帮我吗,麻烦大家了

2009-5-10 04:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 10 楼』:  

我脑袋就大了,我给的代码是处理单个文件的
处理多文件需要在外面加一层FOR 得到文件名。




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-5-10 07:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
5600549976
新手上路





积分 11
发帖 11
注册 2009-4-19
状态 离线
『第 11 楼』:  



  Quote:
处理多文件需要在外面加一层FOR 得到文件名

这么一说就懂了,3Q

2009-5-10 09:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: