标题: [求助]如何批量删除特定的多行内容?
[打印本页]
作者: honghunter
时间: 2007-12-6 21:40
标题: [求助]如何批量删除特定的多行内容?
背景,一堆静态的html文件,每个上面都有好几个AD代码,现在要删除几个AD。
希望实现的功能是:
如果A文件的第N到M行的内容和B文件一样,则将A文件中的这些行删除掉。
想请各位给个思路。
作者: honghunter
时间: 2007-12-6 21:42
A文件中的N和M是常数(固定不变的)
B文件内容如下:
<td style="ad250_60">
<script type="text/JavaScript">
var alimama_pid="mm_10039567_157615_200541";
var alimama_titlecolor="0000FF";
var alimama_descolor ="000000";
var alimama_bgcolor="FFFFFF";
var alimama_bordercolor="E6E6E6";
var alimama_linkcolor="008000";
var alimama_sizecode="13";
var alimama_width=250;
var alimama_height=60;
var alimama_type=2;
</script>
<script src="http://p.alimama.com/inf.js" type=text/javascript>
</script>
</td>
作者: terse
时间: 2007-12-8 01:00
假设处理第6-20行试下吧!
@echo off
for /r %%i in (*.htm) do (
if not defined %%i set %%i=a&& (
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%%i"') do (
setlocal enabledelayedexpansion
if %%a geq 6 if %%a leq 20 set/a A=%%a-5 && (
for /f "tokens=1* delims=:" %%k in ('findstr /n .* "b.txt"') do (
if !A! equ %%k (
if not "%%b"=="%%l" echo/%%b>>"%%i.tmp"
)
)
)
if not defined A echo/%%b>>"%%i.tmp"
endlocal
)
move /y "%%i.tmp" "%%i" 2>NUL
)
)
pause
作者: honghunter
时间: 2007-12-8 18:03
首先谢谢三楼的回复。
不过代码执行后,好像没有移除那些行。
调试中……
作者: terse
时间: 2007-12-8 19:13
Originally posted by honghunter at 2007-12-8 18:03:
首先谢谢三楼的回复。
不过代码执行后,好像没有移除那些行。
调试中……
也许可能不能处理特殊字符的缘故
假设htm文件内容:
<html>
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<td style="ad250_60">
<script type="text/JavaScript">
var alimama_pid="mm_10039567_157615_200541";
var alimama_titlecolor="0000FF";
var alimama_descolor ="000000";
var alimama_bgcolor="FFFFFF";
var alimama_bordercolor="E6E6E6";
var alimama_linkcolor="008000";
var alimama_sizecode="13";
var alimama_width=250;
var alimama_height=60;
var alimama_type=2;
</script>
<script src="http://p.alimama.com/inf.js" type=text/javascript>
</script></td>
</head>
<body>
</body>
</html>
b.txt内容:
不同行<td style="ad250_60">
不同行<script type="text/JavaScript">
var alimama_pid="mm_10039567_157615_200541";
var alimama_titlecolor="0000FF";
var alimama_descolor ="000000";
var alimama_bgcolor="FFFFFF";
var alimama_bordercolor="E6E6E6";
var alimama_linkcolor="008000";
var alimama_sizecode="13";
var alimama_width=250;
var alimama_height=60;
var alimama_type=2;
不同行</script>
不同行<script src="http://p.alimama.com/inf.js" type=text/javascript>
不同行</script></td>
处理后这样是不是想要的?
<html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<td style="ad250_60">
<script type="text/JavaScript">
</script>
<script src="http://p.alimama.com/inf.js" type=text/javascript>
</script></td>
</head>
<body>
</body>
</html>
Last edited by terse on 2007-12-8 at 07:15 PM ]
作者: honghunter
时间: 2007-12-8 19:33
我发现是因为那个比较对于网页中的tab识别会产生不等。
我现在首先把网页中的tab都替换成两个空格,就可以了,哈哈,谢谢啊!