Board logo

标题: [求助]截取然后替换 [打印本页]

作者: 5600549976     时间: 2009-4-21 01:11    标题: [求助]截取然后替换

有一堆网页文件,每个网页文件都含有一个<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批处理如何实现自动判断网页是以上那种类型并且实现全自动批量替换(直接在源文件上改,不需要生成新的文件)
作者: 5600549976     时间: 2009-4-21 01:48
有人帮帮我么~~  麻烦大家了
作者: freeants001     时间: 2009-4-21 02:08
书籍名都一样,用sed很方便
sed "s/>书籍名称</>机械工程控制基本理论</g" a.htm
附件 1: sed.rar (2009-4-21 02:08, 40.33 K,下载次数: 6)

作者: HAT     时间: 2009-4-21 02:26    标题: Re 3楼

建议不要重复上传附件,太浪费论坛空间了:)
批处理室附件收集专用帖http://www.cn-dos.net/forum/viewthread.php?tid=25914
作者: yishanju     时间: 2009-4-21 02:27
没全明白,迷糊。
把原文件传上来看看
作者: yishanju     时间: 2009-4-21 02:54
我很懒就大概的写一个样子,正则表达式写得不是很精确。

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
)
作者: 5600549976     时间: 2009-5-10 00:21
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 ]
作者: 5600549976     时间: 2009-5-10 01:57
yishanju大哥还在吗
作者: 5600549976     时间: 2009-5-10 04:36
还有谁能帮帮我吗,麻烦大家了
作者: yishanju     时间: 2009-5-10 07:04
我脑袋就大了,我给的代码是处理单个文件的
处理多文件需要在外面加一层FOR 得到文件名。
作者: 5600549976     时间: 2009-5-10 09:59


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

这么一说就懂了,3Q