您的位置:首页 > 运维架构 > Linux

linux正则表达式之-基础正则表达式(基于grep)

2015-04-27 23:08 567 查看
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 本文出自 “兰州linux运维” 博客,请务必保留此出处http://linuxzkq.blog.51cto.com/9379412/1639502
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: