代码改变世界

Linux grep

2018-09-28 19:43  Tanwheey  阅读(482)  评论(0编辑  收藏  举报

Linux grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

1、  grep使用简明

grep命令用于查找文件里符合条件的字符串。

可以使用#grep --help查看其使用方法。

常用参数:

-i:忽略大小写

--color:符合模式的文本行显示颜色

-v:显示没有被模式匹配到的行

-o:只显示被模式匹配到的字符串

-E:使用扩展正则表达式(=egrep)

使用基本正则表达式定义的模式来过滤文本,并将符合模式的文本行显示出来:

grep [options] PATTERN [FILE...]

基本正则表达式(PATTERN中的元字符匹配):

(1)字符匹配

.:匹配任意单个字符

[]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

[[:digit:]]:匹配数字[0-9]

[[:lower:]]:匹配小写字母[a-z]

[[:upper:]]:匹配大写字母[A-Z]

[[:punct:]]:匹配特殊字符

[[:space:]]:匹配空格

[[:alpha:]]:匹配字母[a-zA-Z]

[[:alnum:]]:匹配字母和数字[0-9a-zA-Z]

(2)次数匹配

*:匹配其前面的字符任意次(0次-任意次)

.*:任意长度的任意字符

\?:匹配其前面的字符1次或0次

\{m,n\}:匹配其前面的字符至少m次,至多n次

例如\{1,\}:匹配其前面的字符至少1次

\{0,3\}:匹配其前面的字符0到3次

(3)位置锚定

^:锚定行首

$:锚定行尾

^$:表示空白行

\<或\b:锚定词首

\>或\b:锚定词尾

(4)分组及后向引用

\(\):分组,将之后需要引用的内容分组囊括起来

\n:后向引用,即引用前面第n个括号内包含的所有内容

扩展正则表达式(PATTERN中的元字符匹配扩展):

(1)次数匹配

?:匹配其前面的字符1次或0次

+:匹配其前面的字符至少1次

{m,n}:匹配其前面的字符至少m次,至多n次

(2)分组及后向引用

():分组,将之后需要引用的内容分组囊括起来

\n:后向引用,即引用前面第n个括号内包含的所有内容

(3)或者

|:匹配左边的字符串或者右边的字符串

例如B|boy:B或boy

2、  grep配置颜色显示

grep是查日志时必须要用的命令,为了在终端方便显示查看,可以加颜色和高亮等设置。

Linux系统使用grep命令让查找出来的内容更直观的打印出来,有两种常用方法:

方法1:设置别名

#vi ~/.bashrc

添加内容:

alias grep='grep--color=auto'          //grep--color=auto设为grep

#source ~/.bashrc          //使配置即时生效

方法2:设置系统环境变量

#vi ~/.bashrc

添加内容:

export GREP_OPTIONS='--color=XXX'GREP_COLOR='a;b'

#source ~/.bashrc        //使配置即时生效

参数说明:

export GREP_OPTIONS='--color=XXX';XXX有三个值供选择:never、always、auto;

always和auto的区别:always会在任何情况下都给匹配字段加上颜色标记;auto只给最后一个管道符匹配项加亮显示;

export GREP_COLOR='a;b';默认是'1;31(高亮的红色);可以根据自己的喜好设置不同的颜色:

a可以选择:0、1、4、5、7、8

0关闭所有属性

1设置高亮度

4下划线

5闪烁

7反显

8消隐

b可以选择:30-37或40-47

X0 black

X1 red

X2 green

X3 yellow

X4 blue

X5 purple

X6 cyan

X7 white

X=3:设置前景色

X=4:设置背景色

 

 

参考:http://www.linuxidc.com/Linux/2014-09/106871.htm

 

------------------------------------------------------Tanwheey--------------------------------------------------

爱生活,爱工作。