功能:grep系列是linux中使用頻率最高的文字查詢命令。主要功能是在乙個或者多個檔案中查詢特定模式的字串。
如果該行有匹配的字串,則輸出整個行的內容。
如果沒有匹配的內容,則不輸出任何內容。grep命令不改動原始檔。
linux的grep家族包括grep、egrep、fgrep、rgrep。grep可以通過-g、-e、-f命令列選項來使用egrep和fgrep的功能。
語法:grep在每個 file 或是標準輸入中查詢 pattern。預設的 pattern 是乙個基本正規表示式(縮寫為 bre)。[選項] pattern [file]
例如:
grep -i 'hello world' menu.h main.c
grep -b 5 -a 5 -i 'apiusername' catalina.out (輸出匹配行及其前後5行)
file 檔案控制
-b--before-context=num
列印以文字起始的num 行
-a--after-context=num
列印以文字結尾的num 行
-c--context=num
列印輸出文字num 行
-num
等同--context=num
--color[=when]
--colour[=when]
高亮顏色突出顯示搜尋的字串。值'always', 'never', or 'auto'。
-u--binary
將檔案作為二進位制檔案處理。僅有ms-dos和ms-windows支援該選項
-u--unix-byte-offsets
報告unix風格的位元組偏移。這個選項僅在同時使用-b選項的情況下才有效;僅有ms-dos和ms-windows支援該選項
與 pattern 正規表示式相關的選項
-e--extended-regexp
pattern 是乙個可擴充套件的正規表示式(縮寫為 ere)
-f--fixed-strings
pattern 是一組由斷行符分隔的定長字串
-g--basic-regexp
pattern 是乙個基本正規表示式(縮寫為 bre)
-p--perl-regexp
pattern 是乙個 perl 正規表示式
-e--regexp= pattern
用 pattern 來進行匹配操作
-f--file=file
從 file 中取得 pattern
-i--ignore-case
忽略大小寫
-w--line-regexp
強制 pattern 僅完全匹配字詞
-x--extended-regexp
強制 pattern 僅完全匹配一行
-z--null-data
乙個 0 位元組的資料行,但不是空行
輸出控制選項
-m--max-count=num
在找到指定數量的匹配行後停止讀檔案
-b--byte-offset
在顯示符合樣式的那一行之前,標示出該行第乙個字元的編號
-n--line-number
在顯示符合樣式的那一行之前,標示出該行的列數編號
--line-buffered
重新整理輸出的每一行
-h--with-filename
在顯示符合樣式的那一行之前,表示該行所屬的檔名稱
-h--no-filename
在顯示符合樣式的那一行之前,不標示該行所屬的檔名稱
--label=label
列印標籤作為檔名的標準輸入(主要用於管道處理)
例如:cat test |grep --label=test -h 123
-o--only-matching
僅輸出匹配行的匹配部分
-q--quiet
--silent
抑制所有正常輸出
--binary-files=type
假定二進位制檔案為type型別檔案type可以為binary、text或without-match
-a--text
等價於-binary-files=text
-i--binary-files=without-match
等價於--binary-files=without-match
-d--directories=action
當grep的物件為目錄時用,處理目錄可以讀取、遞迴或跳過
-d--devices=action
當grep的物件為處理裝置、棧或套接字時必須用,處理物件可以讀取或跳過
-r-r
--recursive
--directories=recurse
相當於--directories=recurse 遍歷目錄
--include=file_pattern
僅grep匹配的檔案模式的檔案
--exclude=file_pattern
跳過匹配的檔案模式的檔案和目錄進行grep匹配
--exclude-from=file
跳過任一匹配檔案模式的檔案
---exclude-dir=pattern
跳過匹配的目錄檔案目錄
-l--files-without-match
僅僅列印未匹配的檔案的檔名
-l--files-with-matches
僅僅列印匹配的檔案的檔名
-c--count
僅僅列印每個檔案的匹配次數
-t--initial-tab
將標籤排隊(標籤即檔名)
-z--null
列印檔案名,檔名與匹配行中間沒有空位元組
-z與-z的區別之一:當乙個檔案有多個匹配行時-z只列印一次檔名,而-z每匹配一次列印一次檔名
雜項-s
--no-messages
不顯示錯誤資訊
-v--invert-match
列印不匹配的行
grep 查詢檔案中內容
grep 工具的工作方式是對檔案的每一行搜尋給定字串的首次出現.如果找到了這個字串,就列印該行的內容 否則就不對該行進行列印.grep welcoming demo.log 從demo.log中查詢包含welcoming 的行 grep中可以使用萬用字元和元字元,把他們放到引號中,這樣shell就不...
4 3 用grep在檔案中搜尋文字
命令 grep 用途 搜尋文字 用法 grep match pattern filename 1.支援多種匹配格式 e 支援正規表示式,等同egrep yang ubuntu echo this is a line.grep e a z this isa line.yang ubuntu echo ...
用grep查詢檔案內容
ctrl r 搜尋執行過的命令 alt 字母 選單欄快捷鍵,然後選擇即可,例如 alt f彈出檔案選單,然後按b,則兩個標籤了。1.關於終端的快捷鍵 tab tab鍵是比較常用的乙個快捷鍵,它的作用是補全檔名或者路徑。舉例來說,輸入 cd ho 在按一下tab鍵,終端裡就會顯示 cd home 了。...