findstr问题,返回多行以包含搜索字符串的一部分

时间:2014-01-16 04:25:59

标签: batch-file findstr

尝试在文件中查找行但文字搜索字符串存在问题。当搜索一个字符串时,它返回多行,搜索字符串只是该行的一部分。作为一个例子,我在计算机列表中查找comp1,我正在返回comp1和comp1a。有没有办法只返回第一个而不是第二个,或者这是findstr的限制。代码

For /f %%a in (%home%\text.txt) do call :look1 %%a

:look1
 set lookup=%1
 findstr /i /c:%lookup% %home%\data.csv >> %home%\final.csv
 exit /b

编辑包含data.csv的样本

Data.csv

日期,COMP,操作系统,应用

日期,COMP1,操作系统,应用程序

日期,电路COMP1A,操作系统,应用程序

日期,COMP2,操作系统,应用程序

2 个答案:

答案 0 :(得分:1)

我建议

FINDSTR /r "^comp, ,comp$ ,comp," <qfindrsl.txt

将是要走的路。这匹配任何正则表达式“^ comp”,(行开头为comp,),“,comp”(或此字符串)或“,comp $”(,comp at最终的线。)


编辑:我将数据放在qfindrsl.txt中。这既适用于我的测试数据,也适用于提供的样本数据。

如果数据在行的开头或结尾都不包含目标字符串,则可以简化为

FINDSTR /r ",comp," <qfindrsl.txt

答案 1 :(得分:0)

您可以使用正则表达式术语来限制查找过滤器:

^表示行的开头
$表示行的结尾

 findstr /r "^comp1$" "filename.txt"

另一种方法是在findstr

中使用/b/e