您的位置首页百科快答

Linux中Grep命令使用方法

Linux中Grep命令使用方法

的有关信息介绍如下:

Linux中Grep命令使用方法

grep的工作方式

在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。

首先创建一个演示文档用于后续对grep命令的讲解演示:

1、在单个文件中搜索特定的字符串,输出为包含特定字符串的文本行

2、在多个文件中检索指定的字串,输出为包含特定字符串的文件名和文本行

为了演示需要先将刚才的演示文档复制一份。输出的文本行前面会加上相应的文件名。

3、利用grep-i进行大小写无关的搜索

将忽略大小写的区别,这样的话,字符串“the”,“The”和“THE”都将被搜索。

4、使用用正则表达式

例如,要搜索全部以“lines”开始以“empty”结束的字串,如搜索“lines[之间任意字]empty”,并且忽略大小写:

正则表达式遵循的几个重复的操作:

.?最多匹配一次

.*匹配零次或者任意多次

.+匹配一次以上

.{n}匹配n次

.{n,}最少匹配n次

.{,m}最多匹配m次

.{n,m}匹配n到m次

5、用grep-w搜索整个词,而不是词中的部分字符串

搜索包含单词为“is”的文本行,当然包含“his”,“this”等的文本行将忽略:

6、利用grep-A-B-C显示所匹配的文本行的前/后/前后一些行内容

对于一些大型文件,不仅显示所匹配的文本行,而且显示之前/之后/前后的一些文本行也是很有用的。为演示需要,先创建另一个演示文档:

1、显示匹配行之后的行-A(After)

例如,显示匹配行之后的三行内容(空行也算):

2、显示匹配行之前的行-B(Before)

例如,显示匹配行之前的两行内容(空行也算):

3、显示匹配行前后的行-C

例如,显示匹配行前后的各两行内容(空行也算):

7、高亮显示匹配的内容

需要设置GREP_OPTIONS环境变量:

然后再进行搜索。

8、利用grep-r在目录中递归搜索

如果在目录中即有文件又有目录,则普通的搜索只搜索文件而不搜索目录,利用-r选项即可递归进行搜索,搜索目录下的所有文件及其子目录内的文件

9、利用grep-v搜索不包含特定字符串的文本行

例如显示所有不包含字符串“go”的文本行:

10、显示不包含所有几个特定字符串的文本行

11、利用grep-c统计所匹配的字符串数目

例如:

查找有多少行匹配字符串:

查找有多少行不匹配字符串:

12、利用grep-l只显示包含特定字符串的文件名称

13、利用grep-o只显示所匹配的字符串

默认的搜索显示的是匹配的文本行的所有内容,但是如果想只显示所搜的特定字符串,则就要使用-o选项了。乍看起来只显示所匹配的字符串好像用处不大,但在使用正则表达式的搜索中很有用处。

14、显示特定字符串的具体位置

例如:

15、利用grep-n同时显示行号