Board logo

标题: 求提取文本中的内容保存到另一文本! [打印本页]

作者: catfen     时间: 2008-3-13 17:25    标题: 求提取文本中的内容保存到另一文本!

以下是1.txt中的内容的其中一段。
  <td align="center" width="16" style="border-bottom:1px #bac1bd dotted;"><a href="http://user.qzone.qq.com/729876636" target="_blank"><img src="/samebarlist/images/icon_star.gif" border="0"></a></td>

我只想把QQ号码都保存到另一个文本中,怎么写啊?
作者: lxmxn     时间: 2008-3-13 17:45

sed -n "s'.*http://user.qzone.qq.com/\([0-9]\+\).*'\1'p" 1.txt | more >qq.txt

作者: bat-zw     时间: 2008-3-13 17:58
命令太高深了,看不懂
作者: catfen     时间: 2008-3-13 18:10
是啊,不过还是不行啊
作者: catfen     时间: 2008-3-13 18:12
SED不是内部或外部命令啊,是SET吗?

[ Last edited by catfen on 2008-3-13 at 06:13 PM ]
作者: sylovanas     时间: 2008-3-13 18:19
sed是第三方工具,要另外下载
作者: pooronce     时间: 2008-3-13 18:31


  Quote:
Originally posted by lxmxn at 2008-3-13 05:45 PM:
sed -n "s'.*http://user.qzone.qq.com/\([0-9]\+\).*'\1'p" 1.txt | more >qq.txt

不如用grep了
grep -oP "(?<=qq.com\/)\d*(?=\")" 1.txt
不过楼主似乎还不知道cygwin

如果findstr有支持只显示查找到文本而不是显示行就好了
作者: lxmxn     时间: 2008-3-13 20:52


  Quote:
Originally posted by pooronce at 2008-3-13 18:31:


不如用grep了
grep -oP "(?<=qq.com\/)\d*(?=\")" 1.txt
不过楼主似乎还不知道cygwin

如果findstr有支持只显示查找到文本而不是显示行就好了

这个正则不错,本来是想用grep来完成的,不过想到grep不像sed那样有一些替换和插入的功能,所以没用grep来做。
作者: suntb     时间: 2008-3-13 23:23

@echo off
for /f "tokens=11 delims== " %%a in ('findstr "user.qzone.qq.com" 1.txt') do (
  for /f "tokens=3 delims=/" %%b in ("%%~a") do (echo %%b>>QQ.txt)
)
QQ.txt
[ Last edited by suntb on 2008-3-13 at 11:43 PM ]
作者: suntb     时间: 2008-3-13 23:25
以上代码去引号的思路参考了论坛帖子:
http://www.cn-dos.net/forum/viewthread.php?tid=20838
作者: stance     时间: 2008-4-21 17:50
謝謝suntb