开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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个或多个,所以有空行。

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.

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

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.


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

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.


[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:

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

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 "$" test.log 

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.

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

3.注意字符集,LC_ALL=C

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

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.

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

   简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表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里正则表达式。主要是awk、sed、grep(egrep)三剑客的正则表达式。

a、基础正则表达式(基于grep)

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

2.alias grep='grep --color=auto',讲课是以grep为例。

linux里正则表达式。主要是awk、sed、grep(egrep)三剑客的正则表达式。

a、基础正则表达式(基于grep)

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

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.

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

   4.

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

linux正则表达式:

   简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或输出需要的字符。

使用正则表达式注意事项:

1.linux正则一般是以行为单位处理的。

2.alias grep='grep --color=auto',讲课是以grep为例。

3.注意字符集,LC_ALL=C


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

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.

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

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.


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

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.


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

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.

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

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.

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

2.alias grep='grep --color=auto',讲课是以grep为例。

linux里正则表达式。主要是awk、sed、grep(egrep)三剑客的正则表达式。

a、基础正则表达式(基于grep)

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

   简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表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: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 "^linux" test.log     

linux正则表达式:

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          

[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行的数据


grep线上环境精典案例后续陆续整理:

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


本文转自 linuxzkq 51CTO博客,原文链接:http://blog.51cto.com/linuxzkq/1639502


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Shell正则表达式(grep)
Shell正则表达式(grep)
0 0
Linux三剑客grep、sed、awk以及正则表达式
$ 以...结尾 ^ 以...开头 . 匹配任意一个字符 \- 匹配前一个字符或子表达式任意次(例如:grep "g.*d" a.txt(过滤a.txt文件中的以g开头以d结尾*可以代表有任意多个字符或没有字符))
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Decian GNU/Linux安全合规之路
立即下载
Debian GNU/Linux 安全合规之路
立即下载
Linux系统通过fail2ban对暴力破解进行防护
立即下载