使用正则表达式的FindStr

囚犯

我有一个类似以下的系统日志文件:

</t>Processed 8 rows.<LF>
</t>Success:    8<LF>
</t>Skip:       0<LF>
</t>Error:      0<LF>
</t>Exceptions: 0<LF>

// other log details

</t>Processed 8 rows.<LF>
</t>Success:    6<LF>
</t>Skip:       1<LF>
</t>Error:      1<LF>
</t>Exceptions: 0<LF>

<\t>是制表符,<LF>是换行符。

我的工作需要创建一个dos批处理来检查这些文件,并采取措施(如果有SkipErrorExceptions找到。

我想到的是,findstr与之regular expression一起使用来定位出现大小写失败的任何行,我已经测试了此正则表达式:

// Should be one line here
\t+Skip\:\s+([1-9]|[1-9][0-9])\n|
\s+Error\:\s+([1-9]|[1-9][0-9])\n|
\s+Exceptions\:\s+([1-9]|[1-9][0-9])\n

但是,findstr不接受正则表达式(\ t \ s \ n ...),所以我确实将其拆分为6个正则表达式:

findstr /rc:"Skip\:[ ]*[1-9]" %file%
findstr /rc:"Skip\:[ ]*[1-9][0-9]" %file%
findstr /rc:"Error\:[ ]*[1-9]" %file%
findstr /rc:"Error\:[ ]*[1-9][0-9]" %file%
findstr /rc:"Exceptions\:[ ]*[1-9]" %file%
findstr /rc:"Exceptions\:[ ]*[1-9][0-9]" %file%

这项工作仅需要使用dos批处理(这是可悲的但不能更改),仅通过findstr语法可以采取任何方法吗?谢谢

MC ND

findstr所有匹配的案例中只有一个

findstr /r /c:"Skip: *[1-9]" /c:"Error: *[1-9]" /c:"Exceptions: *[1-9]"  input.txt

findstr传递了两个命令。第一个提取所需的行,第二个搜索问题条件

findstr /l "Skip: Error: Exceptions:" input.txt | findstr /r /c:": *[1-9].*"

第一个选项更快,因为它只涉及一个命令。第二种选择是较少冗余,并且不太容易键入错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章