2013-03-07 83 views
0

我正尝试使用FINDSTR commanand和cmd.exe来生成包含特定字符串的输入文件中所有行的文件。我下面的命令不会产生任何结果,而FIND命令(下文)显示,有包含字符串182688行我找...命令提示符中的FINDSTR

find命令:

FIND /c "searchstring" c:\Users\karl\Desktop\Report.csv 

给出以下:

---------- C:\USERS\KARL\DESKTOP\REPORT.CSV: 182688 

FINDSTR命令:

findstr /i /c:"searchstring" c:\Users\karl\Desktop\Report.csv > results.out 

给了我一个叫做results.out的空白文件。

我错过了什么?

+1

究竟什么是你的'searchstring'?我现在看到的最可能的罪魁祸首是你的搜索字符串的行为不是你在'findstr'命令中打算的行为;你打算作为一个字符串被解释为具有意想不到的特殊意义的正则表达式符号。 – rojo 2013-03-07 19:01:05

+1

@rojo - 我同意,搜索字符串可能不会按照需要进行解释。但它不能成为正则表达式的问题,因为'/ c'选项默认为文字搜索,除非添加'/ r'选项。 – dbenham 2013-03-07 20:07:27

+0

@dbenham - 例如'findstr/i/c:“* abcd *”'会搜索文字(星号)abcd(星号),而不是包含'abcd'的字符串?这清除了一些长时间的混乱。直到现在,我只是避免在表达式中使用空格,所以我不必在'findstr'中使用'/ c'开关。呵呵。 – rojo 2013-03-07 20:14:24

回答

2

FINDSTR有许多无证的“功能”,可能会让你失望。请参阅What are the undocumented features and limitations of the Windows FINDSTR command?

您还没有告诉我们您的搜索字符串是什么,所以我无法确定。但是,您的问题可能与一个或多个以下:

  • 特殊规则转义"\文字搜索字符串中的命令行中搜索字符串使用时
  • 许多扩展ASCII字符没有找到自己。
  • FINDSTR无法搜索unicode文件。我被告知FIND可以搜索unicode文件。
+1

我的字符串确实包含无法找到的字符。我结束了使用MS Access执行所需的查询。许多感谢@dbenham – 2013-03-22 10:41:42

0

试试这个。在/ n给出一个行号:

findstr /i /n "\<searchstring\>" c:\Users\karl\Desktop\Report.csv