中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 04:02
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何一次查找多串字符是否存在一个文件内
可打印版本  777 / 9
第1楼 zerocq 发表于 2007-10-16 22:15
中级用户 发帖 196 积分 458
如何一次查找多串字符是否存在一个文件内
有N个字符作为特征码

某文件内可能含有这N个字符,如何判断文件内是否出现这些字符中的"任意一个"

逐个"find 字符 文件"太慢了,如果特征码太多速度很慢

sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d test.txt&& echo %time%
命令可以一次查找多个字符,但返回的结果无法判定是否包含字符
如果文件不包含这些字符也会一样显示%time%,该怎么写呢

还有别的工具能实现这个功能吗:)
第2楼 lxmxn 发表于 2007-10-16 23:26
版主 发帖 4,938 积分 11,386
下面放搜索的字串
sed.ini:

AAA
BBB
CCC

第3楼 26933062 发表于 2007-10-16 23:55
银牌会员 发帖 879 积分 2,268
第4楼 zerocq 发表于 2007-10-17 00:27
中级用户 发帖 196 积分 458
Originally posted by lxmxn at 2007-10-16 23:26:
下面放搜索的字串
sed.ini:



sed.ini只放一行内容有效

多行无效??
第5楼 zerocq 发表于 2007-10-17 00:33
中级用户 发帖 196 积分 458
Originally posted by 26933062 at 2007-10-16 23:55:
第6楼 26933062 发表于 2007-10-17 01:16
银牌会员 发帖 879 积分 2,268
看来只有运行3次sed了.不知道效率如何
每次替换一种字符.
第7楼 lxmxn 发表于 2007-10-17 01:35
版主 发帖 4,938 积分 11,386
Originally posted by zerocq at 2007-10-17 00:27:


sed.ini只放一行内容有效

多行无效??

我测试多行有效。
G:\>type sed.ini
perl
sed
first

G:\>type test.txt
this is a perl test
something to use sed
www.cn-dos.net/forum
my first important filter is the Great GNU sed
javascript

G:\>findstr /g:sed.ini test.txt
this is a perl test
something to use sed
my first important filter is the Great GNU sed

G:\>


[ Last edited by lxmxn on 2007-10-17 at 01:48 AM ]
第8楼 zerocq 发表于 2007-10-19 00:08
中级用户 发帖 196 积分 458
请问版主用的是什么操作系统??
第9楼 zerocq 发表于 2007-10-19 01:25
中级用户 发帖 196 积分 458
问题已搞定,可以结贴了

用egrep.exe可以支持同时搜索多个字符,用|来分隔字符

而且正常返回%errorlevel%
第10楼 lxmxn 发表于 2007-10-19 17:14
版主 发帖 4,938 积分 11,386
我的OS是Windows XP。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023