Findstr没有返回第二行

时间:2015-07-24 08:43:58

标签: windows command-line findstr

我正在使用StreamWriter -I在文件夹中的n个文件中查找字符串。同时将结果写入新文件。

我需要在所有文件中找到字符串“IDC”以及旁边的数字。 但是在文件的某些行上,IDC分布在两行,我的搜索只返回第一行。

FINDSTR
如果IDC分布在两行上,

可以帮助将下一行复制到输出文件中。

1 个答案:

答案 0 :(得分:0)

Microsoft的findstr严格基于行。实际上不可能搜索一行中不完全存在的字符串并获得所有行输出。

但是可以定义多个搜索字符串,这些字符串在处理下一行之前在一行上一个接一个地使用,直到其中一个搜索字符串返回正匹配或者搜索字符串都不匹配当前行上的字符串。

示例:

%SystemRoot%\System32\findstr.exe /R /C:"IDC-" /C:"^[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9] \*\*[0-9][0-9.]*\*\*;" *.txt

Findstr(SS64文章)使用当前文件夹的所有*.txt个文件中的这些选项进行搜索

  • 包含对行内任何位置的字符串IDC-敏感的行或
  • 的行
  • 以预期格式的时间开始的行,空格,两个星号,小数点前至少1位的浮点数,两个星号和一个分号。

使用这两个搜索字符串,找到所有3行提供的示例并以正确的顺序输出, FINDSTR 忽略其他不包含IDC-或匹配第二个正则表达式搜索字符串的行

注意:SS64文章FINDSTR - Searching across Line Breaks解释了如何进行包含换行符的搜索。但输出只是找到的多行字符串开始的第一行。