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的那些行,并用颜色标注
[[email protected] 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是一个强大的查找工具,在进行快速寻找的时候可以很方便的使用