linuxRegex之-基礎Regex(基於grep)

來源:互聯網
上載者:User

linuxRegex之-基礎Regex(基於grep)

linuxRegex:

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


使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。


a、基礎Regex(基於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個或多個,所以有空行。

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。


a、基礎Regex(基於grep)

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

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

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

4.

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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

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

4.


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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

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

4.


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

1:linuxRegex:

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

3:使用Regex注意事項:

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

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

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

7:linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

10:a、基礎Regex(基於grep)

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

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

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

14: 4.

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

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

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

test.log:使用Regex注意事項:

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

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

test.log:

test.log:

test.log:a、基礎Regex(基於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

1:linuxRegex:

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

3:使用Regex注意事項:

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

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

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

7:linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

10:a、基礎Regex(基於grep)

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

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

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

14: 4.

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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。



a、基礎Regex(基於grep)

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

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

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

4.

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

3.注意字元集,LC_ALL=C

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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

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

4.

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

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

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

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

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

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

4.


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

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

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

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

4.

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

4.

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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C


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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。



a、基礎Regex(基於grep)

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

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

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

4.

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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

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

4.


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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

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

4.


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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。



a、基礎Regex(基於grep)

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

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

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

4.

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

linuxRegex:

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

使用Regex注意事項:

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。



a、基礎Regex(基於grep)

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

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

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

4.

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

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

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

a、基礎Regex(基於grep)

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

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

1.linux正則一般是以行為單位處理的。

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

3.注意字元集,LC_ALL=C

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

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

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

4.

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

3.注意字元集,LC_ALL=C

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

1:linuxRegex:

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

3:使用Regex注意事項:

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

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

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

7:linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。

10:a、基礎Regex(基於grep)

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

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

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

14: 4.

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

linuxRegex:

linux裡Regex。主要是awk、sed、grep(egrep)三劍客的Regex。、


[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

[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 -o "c*" test.log

c

c

ccc

c

c

c

c

c

ccc

c

c

c

c

[root@nginx_back ~]# grep -o ".*" 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 ~]# alias grep='grep --color=auto'

[root@nginx_back ~]# grep "c*" 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 -o "c*" test.log

c

c

ccc

c

c

c

c

c

ccc

c

c

c

c

[root@nginx_back ~]# grep -o ".*" 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 "[abc]" test.log

[aaa]

cfg1=aaa

xxxx=bbb

cfg2=ccc

cfg3=ddd

[bbb]

cfg1=eee

cfg2=ggg

cfg3=hhh

cfg4=iii

[ccc]

cfg1=jjj

cfg2=lll

cfg2=mmm

cfg2=nnn

[root@nginx_back ~]# grep "[a-z]" 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 "[0-9]" test.log

cfg1=aaa

cfg2=ccc

cfg3=ddd

cfg1=eee

cfg2=ggg

cfg3=hhh

cfg4=iii

cfg1=jjj

cfg2=lll

cfg2=mmm

cfg2=nnn


[root@nginx_back ~]# vi test.log

[aaa]

cfg1=aaa

.xxxx=bbb

cfg2=ccc

.cfg3=ddd

[bbb]

cfg1=eee

.yyyy=fff/

cfg2=ggg

cfg3=hhh

c.fg4=iii/

[ccc]

cf.g1=jjj

zzzz=kkk/

cfg.2=lll.

"test.log" 17L, 154C written

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

.xxxx=bbb

.cfg3=ddd

.yyyy=fff/

c.fg4=iii/

cf.g1=jjj

zzzz=kkk/

cfg.2=lll.

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

[aaa]

cfg1=aaa

.xxxx=bbb

cfg2=ccc

.cfg3=ddd

[bbb]

cfg1=eee

.yyyy=fff/

cfg2=ggg

cfg3=hhh

c.fg4=iii/

[ccc]

cf.g1=jjj

zzzz=kkk/

cfg.2=lll.

cfg2=mmm

cfg2=nnn


[root@nginx_back ~]# vi test.log

[aaa]

cfg1=aaa00000

0.xxxx=bbb

cfg2=ccc

.00cfg3=ddd

[bbb]0000

cfg1=eee

.yy00yy=fff/

cfg2=ggg

cfg3=hhh00000

c.fg400=iii/

[ccc]

cf.g1=jjj

zzzz=kk000000000k/

cfg.2=lll.

cfg2=mmm

cfg2=nnn

"test.log" 17L, 184C written

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

cfg1=aaa00000

0.xxxx=bbb

.00cfg3=ddd

[bbb]0000

.yy00yy=fff/

cfg3=hhh00000

c.fg400=iii/

zzzz=kk000000000k/


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

cfg1=aaa00000

0.xxxx=bbb

.00cfg3=ddd

[bbb]0000

.yy00yy=fff/

cfg3=hhh00000

c.fg400=iii/

zzzz=kk000000000k/

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

cfg1=aaa00000

.00cfg3=ddd

[bbb]0000

.yy00yy=fff/

cfg3=hhh00000

c.fg400=iii/

zzzz=kk000000000k/

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

cfg1=aaa00000

0.xxxx=bbb

.00cfg3=ddd

[bbb]0000

.yy00yy=fff/

cfg3=hhh00000

c.fg400=iii/

zzzz=kk000000000k/


grep一般常用參數:

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

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

-o: 僅顯示出匹配regexp的內容(用於統計出現在文中的次數)

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

-n: 在行首顯示行號

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

-E: 擴充的grep,即egrep

--color=auto: 以特定顏色高亮顯示匹配關鍵字

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

-A: After的意思,顯示匹配字串後n行的資料

-B: before的意思,顯示匹配字串前n行的資料


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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.