grep在文字中查詢內容

2021-07-08 13:53:24 字數 2993 閱讀 6555

功能:grep系列是linux中使用頻率最高的文字查詢命令。主要功能是在乙個或者多個檔案中查詢特定模式的字串。

如果該行有匹配的字串,則輸出整個行的內容。

如果沒有匹配的內容,則不輸出任何內容。grep命令不改動原始檔。

linux的grep家族包括grep、egrep、fgrep、rgrep。grep可以通過-g、-e、-f命令列選項來使用egrep和fgrep的功能。

語法:grep

[選項] pattern [file]

在每個 file 或是標準輸入中查詢 pattern。預設的 pattern 是乙個基本正規表示式(縮寫為 bre)。

例如: 

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 了。...