findstr DOS 指令的多個字串參數

findstr DOS 指令的多個字串參數
findstr /v "black"  File1.txt

上述 DOS 指令將顯示「File1.txt」中與字串「black」不符的內容。

如果我需要過濾“黑”和“白”字,如何修改此命令?

答案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將傳回包含任一單字 (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

進一步閱讀

答案2

如果您需要顯示所有帶有“black”或“white”字樣的行,請刪除命令中的 /v 。

嘗試:findstrwhiteFile1.txt或findstrblackFile1.txt或findstr“blackwhite”File1.txt

/V 運算元將列印不包含搜尋字串的所有行。

輸入 findstr /?有關如何使用 findstr 的更多資訊。

答案3

想補充如何在 Windows 上使用 findstr 和 stdout 進行多次搜尋。

以下是僅列出網路介面名稱及其 IP 位址的方法:

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

微軟文件詳細說明每個參數

  • /i搜尋字串時忽略字元的大小寫。
  • /l按字面意思處理搜尋字串。
  • /c:<string> 使用指定的文字作為文字搜尋字串。

答案4

這是另一個使用不同輸出方法的範例,而不僅僅是直接文件搜尋。例如,檢查網路連接埠狀態,其中port = 98765status = ESTABLISHED or LISTENING

例如,每五秒鐘運行一次 netstat,然後將 netstat 輸出傳送到 FIND (也可以使用FINDSTR),然後將這些結果傳送到 findstr 以在連接埠處於某種狀態時進行過濾(在本例中為ESTABLISHED or LISTENING)。

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

TCP    192.168.123.456:57349     10.10.12.34:98765 ESTABLISHED

相關內容