findstr
搜索文件中的文本模式。
语法
findstr [/b] [/e] [/l | /r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/f:<file>] [/c:<string>] [/g:<file>] [/d:<dirlist>] [/a:<colorattribute>] [/off[line]] <strings> [<drive>:][<path>]<filename>[ ...]
参数
参数 | 说明 |
---|---|
/b | 如果文本模式位于行的开头,则匹配该模式。 |
/e | 如果文本模式位于行的末尾,则匹配该模式。 |
/l | 逐字处理搜索字符串。 |
/r | 将搜索字符串作为正则表达式进行处理。 这是默认设置。 |
/s | 搜索当前目录和所有子目录。 |
/i | 在搜索字符串时忽略字符大小写。 |
/x | 打印完全匹配的行。 |
/v | 仅打印不包含匹配项的行。 |
/n | 打印匹配的每一行的行号。 |
/m | 如果文件包含匹配项,则仅打印文件名。 |
/o | 打印每个匹配行之前的字符偏移量。 |
/p | 跳过包含不可打印字符的文件。 |
/off[line] | 不跳过设置了脱机属性的文件。 |
/f:<file> |
从指定文件获取文件列表。 |
/c:<string> |
使用指定的文本作为文本搜索字符串。 |
/g:<file> |
从指定文件获取搜索字符串。 |
/d:<dirlist> |
搜索指定的目录列表。 每个目录都必须用分号 (;) 分隔,例如 dir1;dir2;dir3 。 |
/a:<colorattribute> |
指定具有两个十六进制数字的颜色属性。 键入 color /? ,获取其他信息。 |
<strings> |
指定要在 filename 中搜索的文本。 必需。 |
[\<drive>:][<path>]<filename>[...] |
指定要搜索的位置和文件。 至少需要一个文件名。 |
/? | 在命令提示符下显示帮助。 |
备注
所有 findstr 命令行选项都必须位于命令字符串中的 strings 和 filename 之前。
正则表达式使用文本字符和元字符查找文本模式,而不是确切的字符串。
文本字符是在正则表达式语法中没有特殊含义的字符,它只是匹配该字符的出现。 例如,字母和数字是文本字符。
元字符是正则表达式语法中具有特殊含义的符号(运算符或分隔符)。
接受的元字符为:
元字符 值 .
通配符 - 任意字符 *
重复 - 上一个字符或类的零次或多次出现。 ^
起始行位置 - 行的开头。 $
结束行位置 - 行的末尾。 [class]
字符类 - 集中的任何一个字符。 [^class]
逆向类 - 不在集中的任何一个字符。 [x-y]
范围 - 指定范围内的任何字符。 \x
转义 - 元字符的文本使用。 \<string
起始单词位置 - 单词的开头。 string\>
结束单词位置 - 单词的结尾。 一起使用时,正则表达式语法中的特殊字符具有最高优先级。 例如,使用通配符 (
.
) 和重复字符 (*
) 的组合来匹配任何字符串:.*
将以下表达式用作较大表达式的一部分,以匹配以 b 开头且以 ing结尾的任何字符串:
b.*ing
若要在一组文件中搜索多个字符串,必须在单独的行中创建包含每个搜索条件的文本文件。
除非参数的前缀为 /c,否则使用空格分隔多个搜索字符串。
示例
若要在文件 x.y 中搜索 hello 或 there,请键入:
findstr hello there x.y
若要在文件 x.y 中搜索 hello,请键入:
findstr /c:"hello there" x.y
若要查找文件 proposal.txt 文件中 Windows(首字母为大写 W)的所有匹配项,请键入:
findstr Windows proposal.txt
若要搜索当前目录和所有子目录中包含单词 Windows 的所有文件,无论字母大小写如何,请键入:
findstr /s /i Windows *.*
若要查找以 FOR 开头且前面有零个或多个空格(如计算机程序循环中所示)的行的所有匹配项,并显示找到的每个匹配项的行号,请键入:
findstr /b /n /r /c:^ *FOR *.bas
若要列出要在文本文件中搜索的确切文件,请使用文件 stringlist.txt 中的搜索条件,搜索在 filelist.txt 中列出的文件,然后将结果存储在文件 results.out中,请键入:
findstr /g:stringlist.txt /f:filelist.txt > results.out
若要列出当前目录和所有子目录中包含单词 computer 的每个文件,无论大小写如何,请键入:
findstr /s /i /m \<computer\> *.*
若要列出包含单词 computer 和以 comp 开头的任何其他单词(如 compliment 和 compete)的文件,请键入:
findstr /s /i /m \<comp.* *.*
相关链接
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈