grep命令與基本正規表示式

2021-09-12 13:28:30 字數 1584 閱讀 8161

grep: 全域性搜尋正規表示式

grep [options] pattern [file...]

options:

--color=auto:對匹配到的文字著色高亮顯示;

-i:ignorecase,忽略字元的大小寫;

-o:僅顯示匹配到的字元本身

-v:反向匹配

-e:支援擴充套件的正規表示式元字元;

-q,--qulet,--silent:靜默模式,即不輸出任何資訊;

基本正規表示式元字元:

字元匹配:

. :匹配任意單個字元

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

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

[[:digit:]]:所有數字

[:alpha:]]:所有字母

[[:upper:]]:所有大寫字母

[[:lower:]]:所有小寫字母

[[:alnum:]]:所有字母和數字

[[:space:]]:所有空白字元

[[:punct:]]:所有標點符號

匹配次數:

*: 匹配其前面的字元任意次;0,1,多次

.*: 匹配任意長度的字元

\?: 匹配其前面的字元0次或1次;即其前面的字元是可有可無的;

\+: 匹配其前面的字元1次或多次;即其前面的字元至少出現1次;

\: 匹配前面的字元m次;

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

位置錨定:

^:行首錨定:用於模式的最左側;

$: 行尾錨定:用於模式的最右側;

^pattern$: 用於pattern來匹配整行;

^$: 空白行;

^[[:space:]]*$:空行或包含空白字元的行;

單詞:非特殊字元組成的連續字元(字串)都成為單詞;

\《或\b: 詞首錨定,用於單詞模式的作側;

\>或\b: 詞尾錨定,用於單詞模式的右側;

\\:匹配完整單詞;

分組及引用:

\(\):將乙個或多個字元**在一起,當做乙個整體進行處理;

例:\(xy)\*ab

note:分組括號中的模式匹配到的內容會被正規表示式引擎自動記錄於內部的變數中,這些變數為:

\1:模式從左側起,第乙個左括號以及與之匹配的右括號之間的模式所匹配到的字元;

\2:模式從左側起,第二個左括號以及與之匹配的右括號之間的模式所匹配到的字元;

\3:...

分組引用練習:

要找出loves.txt檔案中,前後都為love和前後都為like的行

我們發現這樣寫並不能滿足我們的要求

這時候就要用到分組和引用了

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,egrep,fgrep grep 根據模式,去搜尋文字,並將符合模式的文字行顯示到螢幕 pattern 文字字元和正規表示式的元字元組合而成的匹配條件 grep options pattern file.grep color root etc pas...