当前位置:酷酷问答>百科问答>Linux 中 Grep 命令使用方法

Linux 中 Grep 命令使用方法

2024-10-02 12:34:28 编辑:zane 浏览量:602

Linux 中 Grep 命令使用方法

的有关信息介绍如下:

Linux 中 Grep 命令使用方法

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

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 显示所匹配的文本行的前/后/前后一些行内容

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

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

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

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

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

6.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 同时显示行号

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/answer/61268.html
热门文章