grep工具

shell命令行之所以便捷和它所支持的工具是离不开的,其中grep工具就是一个搜索神器,它可以搜索整个linux系统所有文件中的所有信息。


grep的灵活使用离不开正则表达式

正则表达式是一种查找以及字符串替换操作,它只是一个字符串,没有长度的限制,但是一般却表较短。可以被认为是一种轻量级、简介、使用与特定领域的编程语言。

这里主要使用grep工具


grep工具一般用来做两件事,搜索文件和搜索指定字符串

grep常用命令

-a 不要忽略二进制数据。

-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。

-C<显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列之前后的内容。

-c 不显示匹配到的信息,只显示匹配到了多少个 

-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。

-e<范本样式> 指定字符串作为查找文件内容的范本样式。

-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。

-i 忽列字符大小写的差别。

-l 列出文件内容符合指定的范本样式的文件名称。

-L 列出文件内容不符合指定的范本样式的文件名称。

-n 在显示符合范本样式的那一列之前,标示出该列的编号。

-q 不显示任何信息。

-s 不显示错误信息。

-v 反转查找。

-y 此参数效果跟“-i”相同。

-o 只输出文件中匹配到的部分

--color可以将匹配到的用颜色标识


grep正则表达式有两种模式,一种是basic模式,另一种是extend模式(就是添加-E),不添加E的basic模式下?{}+()|都是本身字面意思,不是正则的意思,如果要用正则的意思需要用\转译,而-E模式下则恰巧相反


例如我们touch一个file:里面的内容如下所示,数字为1-100,

hello-world86
hello-world87
hello-world88
hello-world89
hello-world90
hello-world91
hello-world92

现在我们要找到尾数是9的那些行,并用颜色标注

[wpbfcr@wpfbcr grep]$ grep -E --color '.9$' file 
hello-world9
hello-world19
hello-world29
hello-world39
hello-world49
hello-world59
hello-world69
hello-world79
hello-world89
hello-world99

这样即可,如果我们只要求显示匹配到的个数,则加上-c选项既可

grep -Ec --color '.9$' file

可以看出grep的格式大概就是这么个形式,主要的还是后面与正则表达式相关联的查找方式



总结:grep是一个强大的查找工具,在进行快速寻找的时候可以很方便的使用