我最近在 linux 上使用了很多 grep,但现在我需要使用 findstr 在 Windows 机器上执行相同的任务,并且不能完全正确地获得语法。
我的 grep 命令如下所示:
grep "12/12/2011.\*followed by literal string" /myFile.txt
所以这会搜索日期和指定的文字字符串,但可以使用在两个搜索词之间包含任何其他字符的混合.\*
有人知道如何将此语句转换为 findstr 吗?谢谢
findstr命令支持将搜索字符串指定为正则表达式的选项/R
。但是,这是默认行为,因此您实际上不需要指定它:
findstr "12/12/2011.*followed by literal string" myFile.txt
grep
以上应该给出与您的示例相同的结果。
为了匹配文字字符串,您应该使用该/C
标志,例如:/C:"Your literal string here"
否则正则表达式中的空格被计为OR
例如:
findstr "12/12/2011.*followed by literal string" myFile.txt
是相同的
grep 12/12/2011.*followed|by|literal|string myFile.txt
为了将两者结合起来,将一个的输出通过管道传输到另一个,如下所示:
findstr "12/12/2011.*" myFile.txt | findstr /C:"followed by literal text"