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