Chinaunix首页 | 论坛 | 博客
  • 博客访问: 248088
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 411
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-24 09:18
文章分类
文章存档

2015年(22)

2014年(8)

分类: 系统运维

2015-04-27 23:13:15

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


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

阅读(3742) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

zz65472017-06-01 13:28:57

赞,我也系统的总结了怎样在Linux中使用\"正则表达式\",适合初学者,欢迎交流,直达链接如下:
http://www.zsythink.net/archives/tag/正则表达式