2023年8月6日 星期日

搜尋關鍵字(包括檔案內與串流資料中)---grep

用法: grep [選項]… PATTERNS [檔案]…
在每個檔案中尋找 PATTERNS。
範例:grep -i 'hello world' menu.h main.c
PATTERNS 也可以包含多個以換行符號分隔的形樣。

形樣 (Pattern) 選擇與解釋:
  -E, --extended-regexp     PATTERNS 是一個延伸正則表示式
  -F, --fixed-strings       PATTERNS 是一個字串
  -G, --basic-regexp        PATTERNS 是一個基本正則表示式
  -P, --perl-regexp         PATTERNS 是一個 Perl 正規表示式
  -e, --regexp=模式         使用 <模式> 比對
  -f, --file=檔案           自 <檔案> 取得 <模式>
  -i, --ignore-case         忽略模式及資料的大小寫差異
      --no-ignore-case      不允許忽略大小寫差異 (預設值)
  -w, --word-regexp         僅比較整個單字
  -x, --line-regexp         僅比較整行
  -z, --null-data           設定資料列結尾為空白位元組,非換列符號

雜項:
  -s, --no-messages         抑制錯誤訊息
  -v, --invert-match        選取不符合的列
  -V, --version             印出版本資訊然後結束
      --help                顯示此說明然後結束

輸出控制:
  -m, --max-count=NUM       在第 NUM 選取列後停止
  -b, --byte-offset         印出每個輸出列的位元組偏移量
  -n, --line-number         印出每個輸出列的列號
      --line-buffered       輸出每列後清除輸出
  -H, --with-filename       印出輸出列的檔案名稱
  -h, --no-filename         抑制輸出列的檔名前綴
      --label=LABEL         以 LABEL 作標準輸入的檔名前綴
  -o, --only-matching       只顯示相符行中的非空白部份
  -q, --quiet, --silent     抑制全部常態的輸出
      --binary-files=TYPE   設定二進制檔案為 TYPE 的檔案;
                            TYPE 可為 "binary"、"text" 或 "without-match"
  -a, --text                等同於 --binary-files=text
  -I                        等同於 --binary-files=without-matc
  -d, --directories=ACTION  檔案目錄的處理方式;
                            ACTION 為 "read"、"recurse" 或 "skip"
  -D, --devices=ACTION      裝置、FIFO 和通訊端的處理方式;
                            ACTION 為 "read" 或 "skip"
  -R, -r, --recursive       等同於 --directories=recurse
      --include=GLOB       只搜尋符合 GLOB (一種檔案模式) 的檔案
      --exclude=GLOB       跳過符合 GLOB 的檔案
      --exclude-from=檔案  跳過符合 <檔案> 中任何檔案模式的檔案
      --exclude-dir=GLOB   跳過符合 GLOB 的資料夾。
  -L, --files-without-match  只印出未選取行的 檔案 名稱
  -l, --files-with-matches  只印出選取行的 檔案 名稱
  -c, --count               只印出每個 檔案 的選取行項目
  -T, --initial-tab         (需要時) 對齊 Tab 符號
  -Z, --null                在 檔案 名稱後印出空白位元組

內容控制:
  -B, --before-context=NUM  印出 NUM 列的前文
  -A, --after-context=NUM   印出 NUM 列的後文
  -C, --context=NUM         印出 NUM 列的內容
  -NUM                      等同於 --context=NUM
      --group-separator=SEP 在上一個和下一個符合結果和鄰近列 (context) 之間輸出 SEP 分隔字串
      --no-group-separator  不要在上一個和下一個符合結果和鄰近列之間輸出分隔字串
      --color[=WHEN],
      --colour[=WHEN]       用特殊顏色標示符合字串;
                            WHEN 為「always」、「never」或「auto」
  -U, --binary              不要刪除列尾 CR 字元 (MSDOS/Windows)

如果 <檔案> 為「-」,則讀取標準輸入資料。 當沒有指定 <檔案> 時,如果使用遞迴模式,
則讀取「.」否則讀取「-」。當指定的 <檔案> 數目少於兩個時,則假設是 -h。
如果有選到任何一列,則回傳結束狀態 0,否則回傳 1;
如果發生任何錯誤且沒有傳入 -q 選項,結束狀態則為 2。

回報臭蟲至:bug-grep@gnu.org
GNU grep 首頁: <https://www.gnu.org/software/grep/>
GNU 軟體用法的一般說明:<https://www.gnu.org/gethelp/>

相關文章 :

沒有留言: