Linux grep及正規表示式

2021-08-28 09:08:13 字數 1355 閱讀 4029

grep:

linux系統上處理文字的三劍客

grep:文字過濾(模式:pattern)工具;

grep、egrep、fgrep

sed:流編輯器,文字編輯工具;

awk:linux上是gawk,文字報告生成器;可以把文字以更美觀的形式顯示出來;

grep:

作用:文字搜尋工具,根據使用者指定的「模式」對目標文字逐行進行匹配檢查;最後列印匹配到的行

模式:由正規表示式字元及文字字元所編寫的過濾條件;

regexp:由一類特殊字元及文字字元所編寫的模式,其中有些字元不表示字元字面的意思,而表示控制或通配的功能;

分兩類:

基本的正規表示式:bre;

擴充套件的正規表示式:ere;

正規表示式引擎:不同的命令工具可能引擎不同,搜尋的演算法不同;

選項:grep [options] pattern [file…]

-v:顯示模式匹配之外的內容;

-a:顯示匹配內容及其後面的n行;

-b:顯示匹配內容及其前面的n行;

-c:顯示匹配內容及其前後的n行;

-i:搜尋匹配模式時忽略字母大小寫;

-e:用擴充套件正規表示式搜尋;

-f:fgrep;

-o:僅顯示匹配到的字串;

-q:靜默模式,不輸出任何資訊;可以通過echo $?來檢視命令是否執行成功;

基本正規表示式元字元:

匹配字元

「.」:匹配任意字元;

[ ]:匹配範圍內的任意單個字元;

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

匹配次數

「*」:匹配前面字元任意次;

「.*」:匹配任意字元任意次;

\+:匹配前面字元最少一次;

\?:匹配前面字元最多一次;

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

多種用法:

\:匹配前面字元m次;

\:匹配前面字元最少m次;

\:匹配前面字元最多n次;

位置錨定

^:錨定行首;

$:錨定行尾;

^pattern$:匹配符合模式要求的整行內容;

^$:空行; ^[[:space:]]*$:

\《或\b:錨定詞首;

\>或\b:錨定詞尾;

\:匹配整個單詞;

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

note:分組括號中的模式匹配到的內容會被正規表示式引擎記錄到內部的變數中,變數的命名格式為:\1、\2、\3、…;

\1:從左邊開始,第乙個左括號以及與之匹配的右括號之間的模式所匹配到的字元內容;

後向引用:引用前面分組括號中的模式所匹配的字元內容;(而非模式本身)

Linux grep及正規表示式

文字查詢的需要 grep,egrep,fgrep grep 根據模式,搜尋文字,並將符合模式的問本行顯示出來 模式 pattern 文字字元和正規表示式的元字元組合而成的匹配條件 格式 grep option pattern file.i color v 顯示沒有被模式匹配到的行 o 只顯示被模式匹...

linux grep 正規表示式

grep正規表示式元字符集 錨定行的開始 如 grep 匹配所有以grep開頭的行。錨定行的結束 如 grep 匹配所有以grep結尾的行。匹配乙個非換行符的字元 如 gr.p 匹配gr後接乙個任意字元,然後是p。匹配零個或多個先前字元 如 grep 匹配所有乙個或多個空格後緊跟grep的行。一起用...

linux grep 正規表示式

grep正規表示式元字符集 錨定行的開始 如 grep 匹配所有以grep開頭的行。錨定行的結束 如 grep 匹配所有以grep結尾的行。匹配乙個非換行符的字元 如 gr.p 匹配gr後接乙個任意字元,然後是p。匹配零個或多個先前字元 如 grep 匹配所有乙個或多個空格後緊跟grep的行。一起用...