尝试在文件中查找行但文字搜索字符串存在问题。当搜索一个字符串时,它返回多行,搜索字符串只是该行的一部分。作为一个例子,我在计算机列表中查找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,操作系统,应用程序
答案 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