标题: [文本处理] 批处理如何提取文本中的特定字符串 [打印本页]
作者: mokson 时间: 2011-11-23 09:34 标题: 批处理如何提取文本中的特定字符串
本帖最后由 pcl_test 于 2016-11-3 16:41 编辑
如何用DOS命令截取一个txt文件中指定的“以 http:// 开头和以 html 结尾”的所字串?
作者: awk 时间: 2011-11-23 10:36
文件内容贴出来看看行吗?
作者: sxw 时间: 2011-11-23 13:45
复制代码
或用set命令截取字符串,需要具体分析
作者: xslxslxsl 时间: 2011-11-23 21:18
烦请附上文本样例,可以直观些。
作者: mokson 时间: 2011-11-24 00:19
本帖最后由 mokson 于 2011-11-24 00:23 编辑
大家真的非常热心,我现在表达清楚一点。
在我的C:盘有一个 test.txt 文件,里面内容如下:- <a id="myPost" href="http://www.bathome.net/thread-14801-1-1.html" target="_blank">我的贴子</a>
复制代码
我想用批命令自动截取 C:\text.txt 文件里那个<A>链接 href 后面的地址,即:http://www.bathome.net/thread-14801-1-1.html
并且将它回显到屏幕上.
是批处理自动截取(不是用人为的定位位置的方法),请问有什么批处理命令或方法吗?
真心感谢!
作者: awk 时间: 2011-11-24 10:10
- grep -o "http:.*\.html" test.txt
复制代码
作者: 小胖狐狸 时间: 2011-11-24 10:18
简化版- for /f "tokens=5 delims== " %%i in (c:\test.txt) do echo %%~i
- pause
复制代码
作者: mokson 时间: 2011-11-24 12:04
楼上的代码可以达到我的要求,真的很感谢
但是能给我分析一下语句吗?
作者: mokson 时间: 2011-11-25 12:47
简化版
小胖狐狸 发表于 2011-11-24 10:18
但是,当txt文本里面有多个链接地址时,如何匹配多个呢?
作者: awk 时间: 2011-11-25 13:26
回复 9# mokson
文本内容贴出来看看
作者: CrLf 时间: 2011-11-25 13:41
本帖最后由 CrLf 于 2011-11-25 13:43 编辑
namejm 又要内牛满面了嘿嘿:- @echo off
- for /f "delims=" %%a in (1.txt) do (
- for %%b in (%%a) do (
- for /f delims^=^" %%c in ("%%b") do echo %%c
- )
- )
- pause
复制代码
因为此处的等号是默认分隔符,而 url 都是被双引号括起来的,所以应该能秒杀大部分网页源文件...
作者: 小胖狐狸 时间: 2011-12-5 14:58
本帖最后由 小胖狐狸 于 2011-12-5 15:00 编辑
楼上的代码可以达到我的要求,真的很感谢
但是能给我分析一下语句吗?
mokson 发表于 2011-11-24 12:04
delims== 第二个=后有个空格,这是表示:以=和空格这两个符号作为分隔符,将一行语句进行分段
token=5 表示取分段后的第五段,在你的例子里就是“http://……”
echo %%~i 的意思是将参数 i 去掉引号后显示出来
多个链接地址,举例说明吧,如果是不同行的,用这个代码可以实现,如果在同一行,有点难办,贴出你的例子
作者: mokson 时间: 2011-12-7 21:39
真的好敬佩上面的高手们。
看来我得要认认真真的学习一下批处理才行,特别是 for 语句 和 if 语句。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |