grep及正規表示式

2021-09-28 15:02:23 字數 2659 閱讀 3545

##grep

grep:global search regular expression and print out the line

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

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

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

正規表示式引擎:

選項:

####基本正規表示式

\(\) :\(\)將乙個或多個字元**在一起,當作乙個整體進行處理,如:(root)+

後向引用 \1,\2,\3…

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

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

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

如:(ab+(xy)*);

\1:ab+(xy)*

\2:xy

####egrep及擴充套件的正規表示式

grep = grep -e

.:匹配單個字元

[ ]:範圍之外

[^]:範圍之內

次數匹配

*:?:0或多次:

:匹配m次

:至少m,至多n次

錨定

^ :錨定行首

$:錨定行尾

<,\b:詞首錨定

>,\b:詞尾錨定

分組:( )

後向引用:\1,\2,…

或者:a|b

c|cat: c或cat

練習:1,顯示當前系統root,centos或user1使用者的預設shell和uid:

答案:grep -e 「^(root|centos|user1)>」 /etc/passwd|cut-d: -f1,3,7

2,找出/etc/rc.d/init.d/functions檔案(centos6)中某單詞後面跟乙個小括號的行

答案「grep -e -o 「[_[:alpha:]]+() /etc/rc.d/init.d/functiosns」

3,使用echo 輸出一絕對路徑,使用egrep取出其基名:

答案:echo 「/mnt/sdc」 | grep -e -o 「[^/]+/?$|cut-d」/」 -f1

4,找出ifconfig命令結果中1-255之間的數值:

5,找出ifconfig命令結果中的ip位址

####bash的基礎特性

####本地變數:

- 變數賦值:name=`value`

- 可以使用引用:

- value:

(1)可以式直接字串:name="username"

(2)變數引用:name="$username"

(3)命令引用:name=command`,name=$(command)

- 變數引用:$,或-$name

- " ":弱引用,其中的變數引用會被替換為變數值

- ·· :強引用,其中的變數引用不會被替換為變數值,而保持原字串:

###環境變數

bash由許多內建的環境變數:path,shell,uid,histsize,home,pwd,old,ps1,histfile

####變數命名法則:

1,不能使用程式中的關鍵字或保留字:if ,for 等等

2,只能使用數字,字面及下劃線,且不能以數字開頭;

3,盡量做到見名知義,

###位置變數

元字元定義^

行首$行尾.

任意單一字元

[ ][ ]範圍內的任意單一字元

[^ ]

除[ ^] 內的任意單一字元

**前面字元重複不確定次數

++前面字元重複一次以上不確定次數

??前面字元重複0或1次

\轉義符

.*任意長度字元

前面字元重複n次

前面字元重複n次以上

元字元定義[:alnum:]

字母和數字

[:alpha:]

代表任何英文大小寫字元,亦即 a-z, a-z

[:lower:]

小寫字母

[:upper:]

大寫字母

[:blank:]

水平空白字元(空格和製表符)

[:space:]

所有水平和垂直的空白字元(比[:blank:]包含的範圍廣)

[:cntrl:]

不可列印的控制字元(退格、刪除、警鈴…)

[:digit:]

十進位制數字

[:graph:]

可列印的非空白字元

[:print:]

可列印字元

[:punct:]

標點符號

[:xdigit:]

十六進製制數字

grep 及 正規表示式

grep 根據模式搜尋文字,並將符合模式的文字行顯示出來。pattern 文字字元和正規表示式的元字元組合而成的匹配條件 i 忽略大小寫 color 顯示標註顏色 v 顯示沒有被模式匹配到的行 o 只顯示被匹配到的字串 任意長度的任意字元 任意單個字元 指定範圍內的 指定範圍外的 元字元 匹配任意單...

grep及正規表示式

grep,egrep,fgrep grep 根據模式搜尋文字,並將符合模式的文字行顯示出來。pattern 文字字元和正規表示式的元字元組合而成匹配條件 grep options pattern file.i color v 顯示沒有被模式匹配到的行 o 只顯示被模式匹配到的字串 任意長度的任意字元...

grep 及正規表示式

grpe 及正規表示式 文字查詢的需要 grep,egrep,fgrep grep 根據模式,搜尋文字,並將符合模式的文字行顯示出來。pattern 文字字元以及正規表示式的元字元組合而成的匹配條件 grep options pattern file.i 忽略大小寫 color 顏色突出顯示 v 顯...