findstr DOS命令的多字符串参数


21
findstr /v "black"  File1.txt

上面的DOS命令将显示'File1.txt'的内容,该内容与字符串“ black”不匹配。

如果需要过滤单词“ black”和“ white”,如何修改此命令?


2
findstr工具不是MS-DOS的一部分。它带有Windows(XP +?)。我认为您的意思是“命令行工具”而不是“ DOS命令”。
米歇尔·德·瑞特

Answers:


30

如何过滤单词“ black”和“ white”?

以下命令将显示所有包含"black" NOR的"white"

findstr /v "black white" blackwhite.txt

以下命令将显示所有包含"black" OR的"white"

findstr "black white" blackwhite.txt

以下命令将显示所有包含“ 完全相同 "black white ”的行:

findstr /c:"black white" blackwhite.txt

以下命令将显示所有包含"black" AND的"white"

findstr "white" blackwhite.txt | findstr "black"

笔记:

  • 如果搜索字符串包含多个单词,并用空格分隔,findstr则将返回包含任一单词(OR)的行。

  • 文字搜索(/C:string)将逆转此行为,并允许搜索短语或句子。文字搜索还允许搜索标点符号。

示例数据文件(blackwhite.txt):

red
black
white
blue
black white
black and white

输出示例:

F:\test>findstr /v "black white" blackwhite.txt

red
blue

F:\test>findstr "black white" blackwhite.txt
black
white
black white
black and white

F:\test>findstr /c:"black white" blackwhite.txt
black white

F:\test>findstr "white" blackwhite.txt | findstr "black"
black white
black and white

进一步阅读


1
非常有趣..我猜想这是在寻找白色和黑色findstr "white" File2.txt | findstr "black"
barlop 2015年

好吧,因为我们有NOR,所以仍然存在我们可以考虑缺失的置换。NAND。我们可以考虑缺少的另一个是XOR
barlop 2015年

@barlop我不知道该怎么做NAND或XOR:/我知道输出应该是什么,但是如何到达……
DavidPostill

也许没有一个很好的快速方法,这可能是检查错误级别的批处理文件,如果这样做的话,最好使用其他一些工具,看起来grep不能。但AWK可以做相当多的或课程的perl的unix.stackexchange.com/questions/177513/...
barlop


0

如果您需要显示所有包含单词“ black”或“ white”的行,请在命令中删除/ v。

尝试:findstr白色File1.txt或findstr黑色File1.txt或findstr“黑色白色” File1.txt

/ V操作数将打印不包含搜索字符串的所有行。

键入findstr /?有关如何使用findstr的更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.