grep與正規表示式

2021-07-08 10:52:32 字數 1464 閱讀 4130

grep 及正規表示式

文字查詢的需要,

grep, egrep, fgrep

grep:根據模式,去搜尋文字,並將符合模式的文字行顯示到螢幕 

pattern: 文字字元和正規表示式的元字元組合而成的匹配條件

grep [options] pattern [file...]

#grep --color 'root' /etc/passwd

-i: 忽略字元大小寫

--color[=num]: 

# alias grep='grep --color'

-v: 顯示沒有被模式匹配的行

-o: 只顯示被模式顯示的串

正規表示式:regular expression,regexp

元字元:

. :匹配單個任意字元 #grep --color 'r..t' /etc/passwd

:匹配指定範圍內的任意單個字元

[^] :匹配指定範圍外的任意單個字元

匹配次數(貪婪模式):

*  :匹配其前面的字元任意次    

a, b, ab, aab, acb, adb, amnb

a*b  : b, ab, aab可以匹配

.* : 任意長度任意字元

a.*b :a開頭,b結束

\?  : 匹配其前面字元0次或1次(部分匹配)

#grep 'a\?b' test.txt  nmbmnbmnb符合 

\ :匹配其前面字元至少m次,至多n次

\  :至少1次

\ :至少1次,至多3次

#grep 'a\b' test.txt

#grep 'a.\b' test.txt   anmbnmbmnb符合

位置錨定:

^ :錨定行首,次字元後面的任意內容必須出現行首

#grep '^r..t' /etc/passwd

$ :錨定行尾,次字元後面的任意內容必須出現行尾

#grep 'w$' /etc/passwd

#grep 'b..h$' /etc/paawd

^$ :空白行        

#grep '^$' /etc/inittab | wc -l   統計空白行    

#grep '[[:digit:]]$' /etc/inittab    以乙個數字結尾的字元

\< 或\b :錨定詞首,其後面的任意字元必須作為單詞首部出現

\> 或\b :錨定詞尾,其前面的任意字元必須作為單詞首部出現

\精確匹配單詞root

分組:\(\)

\(ab\)*  : ab 可以出現任意次

\1 :引用第1個左括號以及與之引用的內容

\2 :引用第2個左括號以及與之引用的

\3 :引用第3個左括號以及與之引用的

$ grep '\(l..e\).*\1' test1.txt  //she like anna liker.

grep與正規表示式

grep命令 功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯示匹配次數 i 忽略大小寫差異 n 在行首顯示行號 a after的意思,顯示匹配字串後n行的資料 b before...

grep與正規表示式

正規表示式只是字串的一種描述,只有和支援正規表示式的工具相結合才能進行字串處理。本文以grep為例來講解正規表示式。grep命令 功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯...

grep 與正規表示式

正規表示式只是字串的一種描述,只有和支援正規表示式的工具相結合才能進行字串處理。本文以grep為例來講解正規表示式。功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯示匹配次數 i...