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
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 查找字符串- 在文件中搜索字符串。
答案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 = 98765
和status = 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