findstr DOS 命令的多字符串参数

findstr DOS 命令的多字符串参数
findstr /v "black"  File1.txt

上述 DOS 命令将显示不匹配字符串“black”的“File1.txt”的内容。

如果我需要过滤单词“黑色”和“白色”,该如何修改此命令?

答案1

如何过滤“黑色”和“白色”这两个词?

以下命令将显示包含以下项的所有行"black" 也不 "white"

findstr /v "black white" blackwhite.txt

以下命令将显示包含以下项的所有行"black" 或者 "white"

findstr "black white" blackwhite.txt

以下命令将显示包含以下项的所有行确切地 "black white“:

findstr /c:"black white" blackwhite.txt

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

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

笔记:

  • 当搜索字符串包含多个单词(以空格分隔)时,findstr将返回包含任一单词(或)的行。

  • 文字搜索 ( /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

进一步阅读

答案2

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

尝试: findstr white File1.txt 或 findstr black File1.txt 或 findstr "black white" File1.txt

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

输入 findstr /? 以获取有关如何使用 findstr 的更多信息。

答案3

想要补充一点,提及如何在 Windows 上使用 findstr 和 stdout 进行多次搜索。

以下是如何仅列出网络接口名称及其 IP 地址:

ipconfig /all | findstr /i /L /c:"Ethernet" /c:"IPv4"

Microsoft 文档详细说明每个参数

  • /i搜索字符串时忽略字符的大小写。
  • /l进程按字面意思搜索字符串。
  • /c:<string> 使用指定的文本作为文字搜索字符串。

答案4

这是另一个使用不同输出方法的示例,而不仅仅是直接文件搜索。例如,检查网络端口状态,其中port = 98765status = ESTABLISHED or LISTENING

例如,每五秒运行一次 netstat,然后将 netstat 输出通过管道传输到 FIND(也可以使用FINDSTR),然后当端口处于某种状态时(在本例中ESTABLISHED or LISTENING)将这些结果通过管道传输到 findstr 进行过滤。

netstat -an 5 | find "98765" | findstr "ESTABLISHED LISTENING"

TCP    192.168.123.456:57349     10.10.12.34:98765 ESTABLISHED

相关内容