天天看點

linux正規表達式之-基礎正規表達式(基于grep)

linux正規表達式:

   簡單的說,正規表達式就是為處理大量的字元串而定義的一套規則和方法,如:假設@代表123456,!代表abcde.通過定義的這些特殊符号的鋪助,系統管理者就可以快速的過濾,替換或輸出需要的字元。

使用正規表達式注意事項:

1.linux正則一般是以行為機關處理的。

2.alias grep='grep --color=auto',講課是以grep為例。(注意:為了使下面的案例更加清晰明了,在做下面的案例前請先執行此行指令)

3.注意字元集,LC_ALL=C

linux裡正規表達式。主要是awk、sed、grep(egrep)三劍客的正規表達式。

a、基礎正規表達式(基于grep)

   1.^a 表示搜尋以a開頭的内容

   2.a$ 表示搜尋以a結尾的内容

   3.^$ 表示空行,不是空格

   4. . 代表且隻能代表任意一個字元

   5. \ \. 就隻代表點本身,轉義符号,讓有着特殊身份意義的字元,脫掉馬甲,

   6. * 重複0個或多個前面的一個字元

   7. .* 比對所有字元。^.*以任意多個字元開頭,.*$以任意多個字元結尾

      ^.* 根據前面的單個字元,我們知道^.*比對以任意多個字元串開頭的内容。

   8. [abc] 比對字元集合内的任意一個字元[a-z].

   9. [^abc] 比對不包含^後的任意字元的内容

      [^a-z] 不包含小寫字母

      [^0-9] 不包含數字

   10. a\{n,m\} 重複n到m次,前一個重複的字元。如果用egrep可以取掉斜線。

       \{n,\}   重複至少n次,前一個重複的字元。如果用egrep可以取掉斜線。

       \{n\}    重複n次,前一個重複的字元。如果用egrep可以取掉斜線。

       \{,m}\   重複最多m次-最好不要用。

[root@nginx_back ~]# grep ".*" test.log《==比對0個或多個,是以有空行。

2.alias grep='grep --color=auto',講課是以grep為例。

   2.$a 表示搜尋以a結尾的内容

   4.

[root@nginx_back ~]# grep "." test.log《==比對任意一個字元,至少一個,是以沒有空行。

[root@nginx_back ~]# grep -v "^$" test.log      

[root@nginx_back ~]# grep -vn "^$" test.log

1:linux正規表達式:

2:   簡單的說,正規表達式就是為處理大量的字元串而定義的一套規則和方法,如:假設@代表123456,!代表abcde.通過定義的這些特殊符号的鋪助,系統管理者就可以快速的過濾,替換或輸出需要的字元。

3:使用正規表達式注意事項:

4:1.linux正則一般是以行為機關處理的。

5:2.alias grep='grep --color=auto',講課是以grep為例。

6:3.注意字元集,LC_ALL=C

7:linux裡正規表達式。主要是awk、sed、grep(egrep)三劍客的正規表達式。

10:a、基礎正規表達式(基于grep)

11:   1.^a 表示搜尋以a開頭的内容

12:   2.$a 表示搜尋以a結尾的内容

13:   3.^$ 表示空行,不是空格

14:   4.

[root@nginx_back ~]# grep -v n "^$" test.log

grep: ^$: 沒有那個檔案或目錄

test.log:   簡單的說,正規表達式就是為處理大量的字元串而定義的一套規則和方法,如:假設@代表123456,!代表abcde.通過定義的這些特殊符号的鋪助,系統管理者就可以快速的過濾,替換或輸出需要的字元。

test.log:使用正規表達式注意事項:

test.log:2.alias grep='grep --color=auto',講課是以grep為例。

test.log:3.注意字元集,LC_ALL=C

test.log:

test.log:a、基礎正規表達式(基于grep)

test.log:   1.^a 表示搜尋以a開頭的内容

test.log:   2.$a 表示搜尋以a結尾的内容

test.log:   3.^$ 表示空行,不是空格

test.log:   4.

[root@nginx_back ~]# grep -v -n "^$" test.log

[root@nginx_back ~]# grep "$" test.log 

[root@nginx_back ~]# grep "C$" test.log

[root@nginx_back ~]# grep "." test.log   

[root@nginx_back ~]# grep "\." test.log

[root@nginx_back ~]# grep "rep" test.log 

[root@nginx_back ~]# grep "grep" test.log

[root@nginx_back ~]# grep ".$" test.log    

[root@nginx_back ~]# grep "\.$" test.log

[root@nginx_back ~]# grep "\.*$" test.log

[root@nginx_back ~]# grep ".*" test.log  

[root@nginx_back ~]# grep ".$" test.log   

[root@nginx_back ~]# grep ".*$" test.log   

[root@nginx_back ~]# grep "\.*" test.log      

[root@nginx_back ~]# grep "grep" test.log        

[root@nginx_back ~]# grep "\." test.log          

[root@nginx_back ~]# grep "C$" test.log          

[root@nginx_back ~]# grep -v -n "^$" test.log    

[root@nginx_back ~]# grep "^linux" test.log     

linux裡正規表達式。主要是awk、sed、grep(egrep)三劍客的正規表達式。、

[root@nginx_back ~]# cat test.log

[aaa]

cfg1=aaa

xxxx=bbb

cfg2=ccc

cfg3=ddd

[bbb]

cfg1=eee

yyyy=fff

cfg2=ggg

cfg3=hhh

cfg4=iii

[ccc]

cfg1=jjj

zzzz=kkk

cfg2=lll

cfg2=mmm

cfg2=nnn

[root@nginx_back ~]# grep "c*" test.log          

[root@nginx_back ~]# grep -o "c*" test.log

c

ccc

[root@nginx_back ~]# grep -o ".*" test.log 

[root@nginx_back ~]# alias grep='grep --color=auto'

[root@nginx_back ~]# grep "c*" test.log          [aaa]

[root@nginx_back ~]# grep "[abc]" test.log     

[root@nginx_back ~]# grep "[a-z]" test.log   

[root@nginx_back ~]# grep "[0-9]" test.log   

[root@nginx_back ~]# vi test.log

.xxxx=bbb

.cfg3=ddd

.yyyy=fff/

c.fg4=iii/

cf.g1=jjj

zzzz=kkk/

cfg.2=lll.

"test.log" 17L, 154C written

[root@nginx_back ~]# grep "[\.,/]" test.log

[root@nginx_back ~]# grep "[^abc]" test.log    

cfg1=aaa00000

0.xxxx=bbb

.00cfg3=ddd

[bbb]0000

.yy00yy=fff/

cfg3=hhh00000

c.fg400=iii/

zzzz=kk000000000k/

"test.log" 17L, 184C written

[root@nginx_back ~]# grep "0\{1,3\}" test.log

[root@nginx_back ~]# grep "0\{1,\}" test.log  

[root@nginx_back ~]# grep "0\{2\}" test.log  

[root@nginx_back ~]# egrep "0{1,3}" test.log  

grep一般常用參數:

-a: 在二進制檔案中,以文本檔案的方式搜尋資料

-c: 計算找到‘搜尋字元串’的次數

-o: 僅顯示出比對regexp的内容(用于統計出現在文中的次數)

-i: 忽略大小寫的不同,是以大小寫視為相同

-n: 在行首顯示行号

-v: 反向選擇,即顯示沒有‘搜尋字元串’内容的那一行

-E: 擴充的grep,即egrep

--color=auto: 以特定顔色高亮顯示比對關鍵字

#<-提示:-i -v 為常用參數

-A: After的意思,顯示比對字元串後n行的資料

-B: before的意思,顯示比對字元串前n行的資料

grep線上環境精典案例後續陸續整理:

http://linuxzkq.blog.51cto.com/9379412/1641505

本文轉自 linuxzkq 51CTO部落格,原文連結:http://blog.51cto.com/linuxzkq/1639502

繼續閱讀