使用正則表達(dá)式搜索文件中的文本模式。
在命令字符串中,所有 findstr 命令行選項(xiàng)必須在 Strings 和 [Drive:][Path] FileName [...] 之前。
Findstr 可以在任何 ASCII 文件或文件中精確查找所要查找的文本。然而,有時(shí)要匹配的信息只有一部分或要查找更寬廣的信息范圍。在這種情況下,findstr 具有使用正則表達(dá)式搜索各種文本的強(qiáng)大功能。
正則表達(dá)式是用于指定文本類型的符號(hào),與精確的字符串相反。標(biāo)記使用文字字符和元字符。每個(gè)在常規(guī)的表達(dá)式語(yǔ)法中沒(méi)有特殊意義的字符都是文字字符,與出現(xiàn)的該字符匹配。例如,字母和數(shù)字是文字符號(hào)。元字符是在正則表達(dá)式語(yǔ)法中具有特殊意義(操作符或分隔符)的符號(hào)。
下表列出 findstr 接受的元字符。
字符 | 值 |
---|---|
. | 通配符:任何字符 |
* | 重復(fù):以前字符或類的零次或多次出現(xiàn) |
^ | 行位置:行的開(kāi)始 |
$ | 行位置:行的結(jié)尾 |
[class] | 字符類:集合中任何一個(gè)字符 |
[^class] | 反類:不在集合中的任何一個(gè)字符 |
[X-y] | 范圍:指定范圍內(nèi)的任何字符 |
\X | 轉(zhuǎn)義:元字符 X 的文字用途 |
\<xyz | 字位置:字首 |
xyz\> | 字位置:字尾 |
組合使用正則表達(dá)式語(yǔ)法的特殊字符功能十分強(qiáng)大。例如,下面的通配符 (.) 和重復(fù)符 (*) 的組合可以匹配任何字符串:
.*
將如下表達(dá)式用作匹配以“b”開(kāi)頭并以“ing”結(jié)尾的任意字符串的更大表達(dá)式的組成部分:
b.*ing
使用空格分隔多個(gè)搜索字符串,除非參數(shù)以 /c 為前綴。要在文件 x.y 中搜索“hello”或“there”,請(qǐng)鍵入:
findstr "hello there" x.y
要在文件 x.y 中搜索“hello there”,請(qǐng)鍵入:
findstr /c:"hello there" x.y
若要查找文件 Proposal.txt 中出現(xiàn)的所有單詞“Windows”(首字母 W 大寫),請(qǐng)鍵入:
findstr Windows proposal.txt
若要搜索包含單詞 Windows 的當(dāng)前目錄和所有子目錄中的每個(gè)文件(不考慮字母大小寫),請(qǐng)鍵入:
findstr /s /i Windows *.*
要查找包含字“FOR”的所有行(前面可有任意空格,如:計(jì)算機(jī)程序中的循環(huán)),并包括每次出現(xiàn)的行號(hào),請(qǐng)鍵入:
findstr /b /n /c:"*FOR" *.bas
如果要在相同組文件中搜索幾個(gè)不同項(xiàng)目,請(qǐng)?jiān)谛滦猩蟿?chuàng)建包含每個(gè)搜索標(biāo)準(zhǔn)的文本文件。也可以列出要在文本文件中搜索的確切文件。要使用文件 Finddata.txt 中的搜索標(biāo)準(zhǔn)來(lái)搜索 Filelist.txt 中列出的文件,然后將結(jié)果保存到文件 Results.out 中,請(qǐng)鍵入:
findstr /g:finddata.txt /f:filelist.txt > results.out
假設(shè)您想要查找當(dāng)前目錄和所有子目錄中包含單詞“computer”的每個(gè)文件,而不考慮字母的大小寫。若要列出包含單詞“computer”的所有文件,請(qǐng)鍵入:
findstr /s /i /m "\<computer\>" *.*
現(xiàn)在假定不僅需要查找單詞“computer”,而且需要查找以字母“comp”開(kāi)頭的所有其他單詞,例如“compliment”和“compete”。請(qǐng)鍵入:
findstr /s /i /m "\<comp.*" *.*
格式 | 含義 |
---|---|
斜體 | 用戶必須提供的信息 |
粗體 | 用戶必須準(zhǔn)確鍵入的要顯示的元素 |
省略號(hào) (...) | 在命令行中可多次重復(fù)的參數(shù) |
中括號(hào) ([]) | 可選項(xiàng) |
大括號(hào) ({});選項(xiàng)用豎線 (|) 分隔。例如:{even|odd} | 用戶必須從選項(xiàng)集合中選擇一個(gè) |
Courier 字體 | 代碼或程序輸出 |