| 
 
samuel 
初级用户
 
  
 
  
  
积分 22 
发帖 9 
注册 2007-12-28 
状态 离线
 | 
『楼 主』:
 [已结]如何替换html文件中的链接
 
使用 LLM 解释/回答一下
  
我要在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 ] 
 
    
 
  
 |   
 | 
  2007-12-31 12:09 | 
  
 | 
 | 
 
junchen2 
高级用户
 
    
 
  
  
积分 537 
发帖 219 
注册 2007-8-4 来自 杭州--半山 
状态 离线
 | 
『第 2 楼』:
 
 
使用 LLM 解释/回答一下
  
sed "s/\(href=\x22\)\(.*\.html\x22\)/\1aaa\2/g" test.html 
 
 Last edited by junchen2 on 2007-12-31 at 12:55 PM ] 
 
    
 
  
 |   
 | 
  2007-12-31 12:45 | 
  
 | 
 | 
 
samuel 
初级用户
 
  
 
  
  
积分 22 
发帖 9 
注册 2007-12-28 
状态 离线
 | 
『第 3 楼』:
 这是什么原因?
 
使用 LLM 解释/回答一下
  
sed: couldn't write 126 items to stdout: Invalid argument 
 
    
 
  
 |   
 | 
  2007-12-31 17:32 | 
  
 | 
 | 
 
junchen2 
高级用户
 
    
 
  
  
积分 537 
发帖 219 
注册 2007-8-4 来自 杭州--半山 
状态 离线
 | 
 | 
  2008-1-1 00:05 | 
  
 | 
 | 
 
samuel 
初级用户
 
  
 
  
  
积分 22 
发帖 9 
注册 2007-12-28 
状态 离线
 | 
 | 
  2008-1-1 00:46 | 
  
 | 
 | 
 
samuel 
初级用户
 
  
 
  
  
积分 22 
发帖 9 
注册 2007-12-28 
状态 离线
 | 
『第 6 楼』:
 
 
使用 LLM 解释/回答一下
  
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 ]  
 
    
 
  
 |   
 | 
  2008-1-1 00:57 | 
  
 | 
 | 
 
junchen2 
高级用户
 
    
 
  
  
积分 537 
发帖 219 
注册 2007-8-4 来自 杭州--半山 
状态 离线
 | 
『第 7 楼』:
 
 
使用 LLM 解释/回答一下
  
sed "s/\(<a href=\?\)\(*\)/\1.\2/g"   www.panjueshu.html >test.html
 
新年快乐!
 
curl "http://www.panjueshu.com/"|sed "s/\(<a href=\?\)\(*\)/\1.\2/g" >test.html
 
 Last edited by junchen2 on 2008-1-1 at 01:54 AM ]  
 
    
 
  
附件
1:   curl.rar (2008-1-1 01:56, 165.01 KiB,下载次数: 7)
 
 
 |   
 | 
  2008-1-1 01:39 | 
  
 | 
 | 
 
samuel 
初级用户
 
  
 
  
  
积分 22 
发帖 9 
注册 2007-12-28 
状态 离线
 | 
『第 8 楼』:
 
 
使用 LLM 解释/回答一下
  
谢谢junchen2:) 
一个奇怪的现象:
 www.panjueshu.html页面我已经下载到了本机 
H:\新建文件夹>sed "s/\(<a href=\?\)\(*\)/\1.\2/g"   www.panjueshu.html    >1panjueshu.html 
执行这个十分钟仍然没有完成替换,要强行中止。中止后发现替换后的文件只有8.33k,而原文件的大小是17.7k。我试了好几次都是这样,生成的文件只有8.33k。
 
强制结束程序以后,新生成的文件末端如下: 
------------------------ 
<p>………………………………………………………………………………………………………… 
2121012080056205)。逾期不交按自动撤回上诉处理。 
</p>
 
 Last edited by samuel on 2008-1-1 at 10:00 AM ]  
 
    
 
  
 |   
 | 
  2008-1-1 04:15 | 
  
 | 
 | 
 
junchen2 
高级用户
 
    
 
  
  
积分 537 
发帖 219 
注册 2007-8-4 来自 杭州--半山 
状态 离线
 | 
『第 9 楼』:
 
 
使用 LLM 解释/回答一下
  
可能是你SED的问题,我这里测试正常,你再运行下面的看看,我发一个SED上来。 
curl "http://www.panjueshu.com/"|sed "s/\(<a href=\?\)\(*\)/\1.\2/g" >test.html 
 
 
 
-------------------------------------------------------------------------------- 
<td><a href="./shaanxi/shaanxi.shtml">陕西</a></td><td><a href="./shanxi/shanxi.shtml">山西</a></td> 
<td><a href="./xinjiang/xinjiang.shtml">新疆</a></td><td><a href="./gansu/gansu.shtml">甘肃</a></td> 
<td><a href="./ningxia/ningxia.shtml">宁夏</a></td><td><a href="./qinghai/qinghai.shtml">青海</a></td> 
<td><a href="./xizang/xizang.shtml">西藏</a></td><td><a href="./hongkong/hongkong.shtml">香港</a></td> 
<td><a href="./macau/macau.shtml">澳门</a></td><td><a href="./taiwan/taiwan.shtml">台湾</a></td> 
 
 
 <li><a href=./lawyer/lawyer-3.shtml>律师名录3</a></li> 
          <li><a href=./lawyer/lawyer-4.shtml>律师名录4</a></li> 
 
 
 
<li><a href='./hunan/gaoyuan/zhangdeyuan.shtml'>湖南省国际信托投资公司董事长张德元受贿案</a></li> 
<li><a href='./guizhou/gaoyuan/yanjianhong.shtml'>贵州省国际信托投资公司董事长闫健宏贪污案</a></li> 
<li><a href='./gaoyuan/court/gaosunxiang.shtml'>原中信实业银行深圳分行行长高森祥受贿案</a></li> 
 
-------------------------------------- 
上面是部分结果 
 
 Last edited by junchen2 on 2008-1-1 at 11:32 AM ] 
 
    
 
  
 |   
 | 
  2008-1-1 11:30 | 
  
 | 
 | 
 
junchen2 
高级用户
 
    
 
  
  
积分 537 
发帖 219 
注册 2007-8-4 来自 杭州--半山 
状态 离线
 | 
 | 
  2008-1-1 11:34 | 
  
 | 
 | 
 
samuel 
初级用户
 
  
 
  
  
积分 22 
发帖 9 
注册 2007-12-28 
状态 离线
 | 
『第 11 楼』:
 
 
使用 LLM 解释/回答一下
  
谢谢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 
----------------------- 
 
    
 
  
 |   
 | 
  2008-1-1 19:45 | 
  
 |