Linux中grep的常用方法

2021-10-06 14:18:43 字數 1972 閱讀 3321

在linux中grep命令用於查詢檔案裡符合條件的字串。

grep指令用於查詢內容包含指定的範本樣式的檔案,如果發現某檔案的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何檔名稱,或是所給予的檔名為「-」,則grep指令會從標準輸入裝置讀取資料。

grep [-abcefghhillnqrsvvwxy][-a《顯示列數》][-b《顯示列數》][-c《顯示列數》][-d《進行動作》][-e《範本樣式》][-f《範本檔案》]
●-e : 開啟擴充套件(extend)的正規表示式。

●-i : 忽略大小寫(ignore case)。

●-v : 取反(invert),只列印沒有匹配的,匹配到的不進行列印

●-n :顯示行號

●-w : 被匹配的文字只能是單詞,而不能是單詞的某一部分,例如文字中有liker,而我只進行搜尋like,就可以用-w選項來避免匹配liker。

●-c : 顯示總共有多少行被匹配到了,而不是顯示被匹配到的內容,注意如果同時使用-cv選項是顯示多少行沒有被匹配到。

●-o : 只顯示被模式匹配到的字串。

●--color :將匹配到的字串以顏色高亮顯示。

●-a n : 顯示匹配到的字串所在的行及其後n行,after

●-b n : 顯示匹配到的字串所在的行及其前n行,before

●-c n : 顯示匹配到的字串所在的行及其前後各n行,context

● . : 任意乙個字元。

●[abc] : 表示匹配乙個字元,這個字元必須是abc中的乙個。

●[a-za-z] :表示匹配乙個字元,這個字元必須是a-z或a-z這52個子母中的乙個。

●[^123] : 匹配乙個字元,這個字元是除了1,2,3以外所有的字元。

對於一些常用的字符集,系統也對此做了定義

●[a-za-z] 等價於 [[:alpha:]]

●[0-9] 等價於 [[:digit:]]

●[a-za-z0-9] 等價於 [[:alnum:]]

●tab , space 等價於 [[:space:]]

●[a-z] 等價於 [[:upper:]]

●[a-z] 等價於 [[:lower:]]

●標點符號 [[:punct:]]

●\ : 匹配其前面出現的字元至少m次,最多n次。

●\? : 匹配其前面出現的內容任意次,等價於\。

●* : 匹配其前面出現的內容任意次,等價於\,所以」.*」表述任意字元任意次,即無論什麼內容都會進行匹配。

● ^ : 錨定行首

● $ : 錨定行尾。技巧:」^$」用於匹配空白行。

●\b或\< : 錨定單詞的詞首。如」\blike」不會匹配alike,但是會匹配liker。

●\b或\> : 錨定單詞的詞尾。如」\blike\b」不會匹配alike和liker,只會匹配like

●\b : 與\b的作用相反。

<1>、在/etc/passwd檔案中找出以ro開頭的行。

<2>、在/etc/passwd檔案中找出以sh詞首開頭的行。

<3>、在/etc/passwd檔案中找出以sh詞尾結尾的行。

Linux 下 grep 命令常用方法簡介

1 從單個檔案中搜尋指定的字串 grep literal string filename 該命令會輸出字串在檔案中所在行的內容,如果字串沒有空格,則可以不加雙引號。filename 可以是多個檔案,每個檔案用空格隔開。2 顯示匹配行附近的多行 grep a n string filename gre...

Linux 下 grep 命令常用方法簡介

1 從單個檔案中搜尋指定的字串 grep literal string filename 該命令會輸出字串在檔案中所在行的內容,如果字串沒有空格,則可以不加雙引號。filename 可以是多個檔案,每個檔案用空格隔開。2 顯示匹配行附近的多行 grep a n string filename gre...

linux中grep的使用

核心 grep的基本操作 grep是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來 選項 a 不要忽略二進位制資料 a 顯示列數 除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容 b 在顯示符合范文樣式的那一行之外,並顯示該行之前的內容。c 計算符合范文樣式的列數 c...