标题: [已结]如何替换html文件中的链接 [打印本页] 作者: samuel 时间: 2007-12-31 12:09 标题: [已结]如何替换html文件中的链接
我要在html文件中的href=“/后追加一部分固定的字符串如:将href=“/abc.html"
改为href=“/aaa/abc.html"
我用set处理时发现
1、原字符串中的 = " 都需要转义,否则没法正确替换;
2、新文件里的中文都是乱码
下面是我写的代码,请大侠们指点,不胜感激!:)
---------------------------
@echo off
for /f "delims=" %%i in ('dir /a /b /s *.html') do (
for /f "delims=" %%a in (%%i) do (
set var=%%a
set "var=!var:%%href="/=href=”/aaa/%%!"
echo !var!>>%%i.txt
)
del %%i
ren "%%i.txt" %%i
)
---------------------
[ Last edited by samuel on 2008-1-1 at 07:46 PM ]作者: junchen2 时间: 2007-12-31 12:45 sed "s/\(href=\x22\)\(.*\.html\x22\)/\1aaa\2/g" test.html
[ Last edited by junchen2 on 2007-12-31 at 12:55 PM ]作者: samuel 时间: 2007-12-31 17:32 标题: 这是什么原因?
sed: couldn't write 126 items to stdout: Invalid argument作者: junchen2 时间: 2008-1-1 00:05 测试文件贴出来看看作者: samuel 时间: 2008-1-1 00:46 就是下面这个主页 http://www.panjueshu.com/
:)
新年快乐!作者: samuel 时间: 2008-1-1 00:57 H:\新建文件夹>sed "s/\(href=\/\)/\(href=\).\//g" www.panjueshu.html >1panjueshu.html
^C终止批处理操作吗(Y/N)? Y
执行这个好像会死循环似的,要强行中止
[ Last edited by samuel on 2008-1-1 at 01:13 AM ]作者: junchen2 时间: 2008-1-1 01:39 sed "s/\(<a href=['|\x22]\?\)\([^>]*\)/\1.\2/g" www.panjueshu.html >test.html
[ Last edited by samuel on 2008-1-1 at 10:00 AM ]作者: junchen2 时间: 2008-1-1 11:30 可能是你SED的问题,我这里测试正常,你再运行下面的看看,我发一个SED上来。
curl "http://www.panjueshu.com/"|sed "s/\(<a href=['|\x22]\?\)\([^>]*\)/\1.\2/g" >test.html
[ Last edited by junchen2 on 2008-1-1 at 11:32 AM ]作者: junchen2 时间: 2008-1-1 11:34 我发一个sed上来,刚才发不上来,下面是一前辈收集的SED http://www.vkill.net/tools.html
[ Last edited by junchen2 on 2008-1-1 at 11:38 AM ]作者: samuel 时间: 2008-1-1 19:45 谢谢junchen2 :)
用了你给的sed,运行确实没有问题
下面是最终的代码,
----------------------
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a /b /s *.shtml') do (
echo %%i
sed -i "s/\(<p>*\)[\r\n]<\/p>/\1\n<\/p>/g" "%%i"
sed -i "s/\(<a href=['|\x22]\?\)\([^.>]*\)/\1.\2/g" "%%i"
time/t
)
endlocal
-----------------------