标题: [文本处理] [已解決]批处理怎样刪除兩個特定字符之間的內容並進行替換<多行>? [打印本页]
作者: leo198444 时间: 2011-9-11 21:56 标题: [已解決]批处理怎样刪除兩個特定字符之間的內容並進行替換<多行>?
本帖最后由 leo198444 于 2011-9-12 14:08 编辑
请教一下
我有一个a.txt文本,要差找特定字串和特定字串之间的内容,并对特定字符进行替换
以下红色数字是要替换的部份
例如 9 要替換成 StrCpy $download9
但9这个数字是非固定的
范例
处理前:
<div class="x-p-ext-block" style="margin-buttom: 5px"><div class="x-p-ext-title" style="width:1024px;">.part009.rar</div><div class="x-p-ext-img"><a href="http://photo.xuite.net/_pic/hannstar/1884112/69089575.jpg/redir"><img src="http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>
处理后:
StrCpy $download9 'http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg'
请问要怎么处理,谢谢
作者: leo198444 时间: 2011-9-11 22:36
本帖最后由 leo198444 于 2011-9-11 22:43 编辑
我的具体想法是...
第一阶段以<div class="x-p-ext-block"和part00作为分隔符,然后包含分隔符进行删除
<div class="x-p-ext-block" style="margin-buttom: 5px"><div class="x-p-ext-title" style="width:1024px;">.part009.rar</div><div class="x-p-ext-img"><a href="http://photo.xuite.net/_pic/hannstar/1884112/69089575.jpg/redir"><img src="http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>
第二阶段以.rar和<img src="作为分隔符,然后包含分隔符进行删除
9.rar</div><div class="x-p-ext-img"><a href="http://photo.xuite.net/_pic/hannstar/1884112/69089575.jpg/redir"><img src="http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>
第三阶段以" border和</div></div>作为分隔符,然后包含分隔符进行删除
9http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg" border="0"></a></div><div class="x-p-ext-desc" style="width: 1024px;"></div></div>
第四阶段在每个行首插入这个字串StrCpy $download
StrCpy $download9 http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg
第五阶段把http替换为 'http
StrCpy $download9 'http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg
第六阶段把jpg替换为jpg'
StrCpy $download9 'http://3.share.photo.xuite.net/hannstar/13e42f7/1884112/69089575_x.jpg'
完成
虽然我有学程式,对一些变量函式有点基础
但是尝试批处理不知道怎么转义字符,也不懂怎样处理这么复杂的字串
请求帮忙
作者: weichenxiehou 时间: 2011-9-12 07:37
有点儿乱的感觉。。。但是不能以字串作为分割符呀,只能以单个字符作为分隔符,你所说的删除倒是可以用set的替换功能办到。但楼主讲得确实有点儿费解啊,就在就题论题了,没有把问题的通用规律分析出来。
作者: Seder 时间: 2011-9-12 10:41
- sed -r "s/.*part00([0-9]).rar.*src=.(.*). border.*/StrCpy $download\1 '\2'/" test.txt >output.txt
复制代码
作者: leo198444 时间: 2011-9-12 13:44
本帖最后由 leo198444 于 2011-9-12 13:50 编辑
我比较大的问题就在于必须用字串作为分割符进行删除
文中提到的分隔符部份是固定存在的
我尝试学习sed 来替换看看
给楼上的Seder ,感谢帮忙
但是我用你的代码处理后的字串是一片空白
还不能理解原理@@
作者: leo198444 时间: 2011-9-12 14:03
Seder 发表于 2011-9-12 10:41
抱歉
刚执行忘了加sed.exe文件
成功了
但是9这个数字有超过十位数
您的代码一旦超过十位数的行就不进行处理了
请问该怎么修改能处理超过十位数
像遇上part010.rar的数字就不处理了
谢谢
作者: leo198444 时间: 2011-9-12 14:08
研究了一下
瞭解原理了,改成這樣就能辨別百位數了
謝謝Seder幫忙- sed -r "s/.*part([0-9][0-9][0-9]).rar.*src=.(.*). border.*/StrCpy $download\1 '\2'/" a.txt >output.txt
复制代码
作者: Seder 时间: 2011-9-12 18:13
你又不说清楚点,其实都很容易实现的
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |