中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 19:56
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求提取文本中的内容保存到另一文本! 查看 851 回复 10
楼 主 求提取文本中的内容保存到另一文本! 发表于 2008-03-13 17:25 ·  中国 广东 珠海 电信
新手上路
积分 8
发帖 3
注册 2007-07-01 20:16
19年会员
UID 92882
性别 男
状态 离线
以下是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号码都保存到另一个文本中,怎么写啊?
2 发表于 2008-03-13 17:45 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
sed -n "s'.*http://user.qzone.qq.com/\(\+\).*'\1'p" 1.txt | more >qq.txt
3 发表于 2008-03-13 17:58 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
命令太高深了,看不懂
4 发表于 2008-03-13 18:10 ·  中国 广东 珠海 电信
新手上路
积分 8
发帖 3
注册 2007-07-01 20:16
19年会员
UID 92882
性别 男
状态 离线
是啊,不过还是不行啊
5 发表于 2008-03-13 18:12 ·  中国 广东 珠海 电信
新手上路
积分 8
发帖 3
注册 2007-07-01 20:16
19年会员
UID 92882
性别 男
状态 离线
SED不是内部或外部命令啊,是SET吗?

[ Last edited by catfen on 2008-3-13 at 06:13 PM ]
6 发表于 2008-03-13 18:19 ·  中国 台湾 台北市 远传电信
初级用户
积分 107
发帖 42
注册 2007-09-03 16:43
18年会员
UID 96475
性别 男
状态 离线
sed是第三方工具,要另外下载
7 发表于 2008-03-13 18:31 ·  中国 上海 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
Originally posted by lxmxn at 2008-3-13 05:45 PM:
sed -n "s'.*http://user.qzone.qq.com/\(\+\).*'\1'p" 1.txt | more >qq.txt


不如用grep了
grep -oP "(?<=qq.com\/)\d*(?=\")" 1.txt


不过楼主似乎还不知道cygwin

如果findstr有支持只显示查找到文本而不是显示行就好了
8 发表于 2008-03-13 20:52 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by pooronce at 2008-3-13 18:31:


不如用grep了
grep -oP "(?<=qq.com\/)\d*(?=\")" 1.txt


不过楼主似乎还不知道cygwin

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

这个正则不错,本来是想用grep来完成的,不过想到grep不像sed那样有一些替换和插入的功能,所以没用grep来做。
9 发表于 2008-03-13 23:23 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线

@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 ]
10 发表于 2008-03-13 23:25 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
以上代码去引号的思路参考了论坛帖子:
http://www.cn-dos.net/forum/viewthread.php?tid=20838
11 发表于 2008-04-21 17:50 ·  中国 辽宁 锦州 电信
初级用户
积分 64
发帖 46
注册 2008-04-21 14:54
18年会员
UID 116504
性别 男
状态 离线
謝謝suntb
论坛跳转: