楼 主
如何用find或findstr在同一行判断多个词是否存在
发表于 2007-09-26 09:45 · 中国 上海 电信
初级用户
★
积分 24 发帖 9 注册 2007-09-23 21:34 18年会员 UID 98135 性别 男
状态 离线
请问如何用find或findstr在文本的同一行判断多个词是否存在?
例如:
判断同一行是否同时存在单词apple和red。
第 2 楼
发表于 2007-09-26 09:55 · 中国 上海 电信
初级用户
★
积分 24 发帖 9 注册 2007-09-23 21:34 18年会员 UID 98135 性别 男
状态 离线
或者再把问题衍生下,判断相对某一个词的所在行的下面3行的另一个词是否存在,用find或findstr也能做到吗?
第 3 楼
发表于 2007-09-26 09:56 · 中国 香港 腾讯云
银牌会员
★★★
积分 1,928 发帖 931 注册 2007-01-06 11:46 19年会员 UID 75624 性别 男
状态 离线
findstr ".*apple.*red.* .*red.*apple.*" hah.txt
???
第 4 楼
发表于 2007-09-26 10:57 · 中国 上海 电信
初级用户
★
积分 24 发帖 9 注册 2007-09-23 21:34 18年会员 UID 98135 性别 男
状态 离线
谢谢你的回答!
我的第二个问题可能表述不清,举个例子吧。
例如判断如下情形:
某一行有red,要求判断比red下面三行是否有apple(比如red在第4行,apple在第7行),这能否用find或findstr做到呢?
第 5 楼
发表于 2007-09-26 12:23 · 中国 北京 广电网
初级用户
★★
积分 128 发帖 59 注册 2007-09-15 23:03 18年会员 UID 97496 性别 男
状态 离线
俺写个程序行不?
setlocal enabledelayedexpansion
cd.>re.txt
for /f "tokens=1* delims=:" %%i in ('findstr /n "red" test.txt') do (
set/a num=%%i
set/a num+=3
)
for /f "tokens=1* delims=:" %%i in ('findstr /n ".*" test.txt') do (
set/a num2=%%i
if !num2!==!num! (
set str=%%j
echo !str!|findstr "apple">>re.txt || echo no apple >>re.txt
)
)
pause
第 6 楼
发表于 2007-09-27 15:55 · 中国 上海 电信
初级用户
★
积分 24 发帖 9 注册 2007-09-23 21:34 18年会员 UID 98135 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正