中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 19:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]求段文本内容过滤代码
楼 主 [已结]求段文本内容过滤代码 发表于 2008-11-01 14:41 ·  中国 福建 泉州 晋江市 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
假设:

a.txt的内容如下:
60880911
95881205
20585070
20881121
12820802
41811228

b.txt的内容如下:
60880911----123456
95881205----123456
20585070----123456
20881121----123456
12820802----123456
41811228----123456
50860512----123456
27861009----123456
64800718----123456
46830506----123456
12840614----123456
76831107----123456
21880925----123456



想根据a.txt所提供的号,查找b.txt里不含有相同号的行,即反向过滤,将过滤后的结果写入c.txt,结果如下:

50860512----123456
27861009----123456
64800718----123456
46830506----123456
12840614----123456
76831107----123456
21880925----123456


有劳大虾了!!

[ Last edited by HAT on 2008-11-1 at 16:28 ]
2 发表于 2008-11-01 14:48 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
findstr /vbg:a.txt b.txt > c.txt
3 发表于 2008-11-01 14:55 ·  中国 福建 泉州 晋江市 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
Originally posted by lxmxn at 2008-11-1 14:48:
findstr /vbg:a.txt b.txt > c.txt


L版是偶最佩服的一位大虾,品行一流!

鞠躬致谢!!!
4 发表于 2008-11-01 15:24 ·  中国 福建 泉州 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
对了,想起一个问题:
假设B文本中增加有几个号,是和A文本中的号多几位数,例如下面这几个号,后面只多一个"0",而这些号就可能也被过滤掉了:

608809110----123456
958812050----123456
205850700----123456
208811210----123456
128208020----123456
418112280----123456

怎样严格筛选过滤条件,假设B文本的号后面都有4个横杠.....

再麻烦下~~~ : ))

[ Last edited by ka56 on 2008-11-1 at 15:26 ]
5 发表于 2008-11-01 15:41 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
如果这样,就需要构造严格的搜索模式了。

@echo off
for /f "delims=" %%a in (a.txt) do (
>>temp.a echo/\^<%%a\^>
)

findstr /vg:temp.a b.txt
del temp.a
6 发表于 2008-11-01 15:55 ·  中国 福建 泉州 晋江市 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
Originally posted by lxmxn at 2008-11-1 15:41:
如果这样,就需要构造严格的搜索模式了。

@echo off
for /f "delims=" %%a in (a.txt) do (
>>temp.a echo/\^<%%a\^>
)

findstr /vg:temp.a b.txt
del temp.a

还没明白do后面的意思,但测试成功,版主辛苦了!!
7 Re 6楼 发表于 2008-11-01 16:28 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
多潜水,多看教程,少提问,就懂了。

批处理的教学
http://www.cn-dos.net/forum/viewthread.php?tid=2338

批处理最完整人性化教程
http://www.cn-dos.net/forum/viewthread.php?tid=18482

批处理新手FAQ整理
http://www.cn-dos.net/forum/viewthread.php?tid=34049

中国DOS联盟批处理室经典帖子合集
http://www.cn-dos.net/forum/viewthread.php?tid=31551
论坛跳转: