findstr 是 Windows下類似grep的指令

想要找文件時怎麼辦? 在 Linux 環境下有 grep 指令可以用, 在 Windows 平台可以用 findstr 指令.

範例:搜尋符合「insert into tmp」的任何副檔名.txt

findstr /s /i /m /c:"select * from" *.txt
  • /s 包含子目錄
  • /i 不分大小寫
  • /m 只輸出檔名
  • /c 做完整指串的指定, 沒有 /c: 則變成以空格做分隔符號的 OR 查詢.

指令完整用法:

在檔案中搜尋字串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B        如果是在行的開端,則符合類型。
  /E        如果是在行的尾端,則符合類型。
  /L        逐字使用搜尋字串。
  /R        使用搜尋字串為一般表示式。
  /S        在現存目錄及所有的子目錄中
            搜尋符合的檔案。
  /I        指定搜尋不區分大小寫。
  /X        列印完全符合的行數。
  /V        只列印不含相符字串的行數。
  /N        列印每一行符合的行數前的行編號。
  /M        只列印包含相符字串的檔案的檔案名稱。
  /O        列印每一個相符行之前的字元位移。
  /P        跳過沒有可列印字元的檔案。
  /OFF[LINE] 不要跳過有離線屬性設定的檔案。
  /A:attr    以兩個十六進位數字指定色彩屬性。請參閱 "color /?"。
  /F:file   從指定的檔案讀取檔案清單 (/ 代表主控台)。
  /C:string 使用特定的字串作為逐字搜尋的字串。
  /G:file   從指定的檔案取得搜尋字串 (/ 代表主控台)。
  /D:dir    搜尋以分號隔開的目錄清單。
  strings   要搜尋的文字。
  [drive:][path]filename
            指定要搜尋的一個或多個檔案。

除非引數的字首有 /C,否則請以空格將多重搜尋字串分開。
例如,'FINDSTR "hello there" x.y' 將會在檔案 x.y 中
搜尋 "hello",或 "there"。'FINDSTR /C:"hello there" x.y'
將會在檔案x.y 中搜尋 "hello there"。

常見表示快速對照表:
  .        萬用字元: 任何字元
  *        重複: 零或之前字元或類別發生數次
  ^        行的位置: 行的開頭
  $        行的位置: 行的結尾
  [class]  字元類別: 組的任何一個字元
  [^class] 顛倒的類別: 不成組的任何一個字元
  [x-y]    範圍: 在特定範圍內的任何字元
  \x       跳開: metacharacter x 的字面使用方法
  \<xyz    字的位置: 字的開頭
  xyz\>    字的位置: 字的結尾

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *