前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 中 Grep 命令的常见示例,附有精美备忘单下载!

Linux 中 Grep 命令的常见示例,附有精美备忘单下载!

作者头像
网络技术联盟站
发布2023-03-13 19:06:41
9830
发布2023-03-13 19:06:41
举报
Grep 是一个强大的 UNIX 命令,可让您在文件内容中搜索各种参数。当您进行故障排除或调试时,它特别有用。

grep 命令有大量的选项和用例。您可能永远不需要或使用所有这些。但是,您最终会在大多数情况下使用少数几个 grep 命令。

本文列出了最常见的 grep 命令和快速示例:

选项:i

命令示例:

代码语言:javascript
复制
grep -i pattern file

描述:不区分大小写的搜索

选项:A

命令示例:

代码语言:javascript
复制
grep -A n pattern file

描述:匹配后显示 n 行

选项:B

命令示例:

代码语言:javascript
复制
grep -B n pattern file

描述:在匹配前显示 n 行

选项:C

命令示例:

代码语言:javascript
复制
grep -C n pattern file

描述:在匹配前后显示 n 行

选项:v

命令示例:

代码语言:javascript
复制
grep -v pattern file

描述:显示不匹配的行

选项:c

命令示例:

代码语言:javascript
复制
grep -c pattern file

描述:计算匹配行数

选项:l

命令示例:

代码语言:javascript
复制
grep -l pattern file

描述:仅显示文件名

选项:w

命令示例:

代码语言:javascript
复制
grep -w pattern file

描述:匹配确切的单词

选项:e

命令示例:

代码语言:javascript
复制
grep -e regex file

描述:匹配正则表达式模式

选项:a

命令示例:

代码语言:javascript
复制
grep -a pattern file

描述:搜索二进制文件

选项:r

命令示例:

代码语言:javascript
复制
grep -r pattern dir

描述:递归搜索目录

Grep 命令的快速示例

您可能已经知道要在文件中搜索特定文本或模式,您必须像这样使用 grep:

代码语言:javascript
复制
grep search_pattern filename

让我们看看 grep 命令的几个常见用例。

不区分大小写的搜索

默认情况下,使用 grep 进行的搜索区分大小写,-i您可以使用以下选项忽略大小写匹配:

代码语言:javascript
复制
grep -i search_pattern filename

这样,grep 将返回与 和 匹配的Holmes行holmes。

显示匹配行之前和之后的行

默认情况下,您只会看到匹配的行,但是,当您对某些问题进行故障排除时,在匹配行之前和/或之后查看几行会有所帮助。

您可以使用-A来显示匹配行之后的行。

请记住,A 代表 After。

下面的命令将显示匹配的行以及匹配后的 5 行。

代码语言:javascript
复制
grep -A 5 search_pattern filename

同样,您可以使用该-B选项在匹配行之前显示行。

请记住,B 代表之前。

下面的命令将在匹配行之前显示 5 行以及匹配行。

代码语言:javascript
复制
grep -B 5 search_pattern filename

我最喜欢的是该选项-C,因为它显示了匹配行之前和之后的行。

请记住,这里的 C 代表圆。

下面的命令将显示匹配行之前的 5 行、匹配行和 matchine 行之后的 5 行。

代码语言:javascript
复制
grep -C 5 search_pattern filename

显示不匹配的行

您可以使用 grep 显示与给定模式不匹配的所有行。此“反转匹配”与以下-v选项一起使用:

代码语言:javascript
复制
grep -v search_pattern filename

您可以组合-i和-v选项。

计算匹配行数

-c您可以使用选项获取与模式匹配的行数,而不是显示匹配的行。这是小写的c。

代码语言:javascript
复制
grep -c search_pattern filename

您可以结合-cand-v选项来获取与给定模式不匹配的行数。您当然可以使用不区分大小写的选项-i。

显示匹配行的行号

要显示匹配行的行号,您可以使用该-n选项。

代码语言:javascript
复制
grep -n search_pattern filename

您可以对反向搜索执行相同的操作。

在多个文件中搜索

您可以提供多个文件供 grep 搜索。

代码语言:javascript
复制
grep search_pattern file1 file2

这可能有效,但更实际的示例是搜索特定类型的文件。例如,如果您只想在 shell 脚本中查找字符串(以 .sh 结尾的文件),您可以使用:

代码语言:javascript
复制
grep search_pattern *.sh

递归搜索目录中的所有文件

您可以使用 grep option执行递归搜索-r。它将在当前目录及其子目录中的所有文件中搜索给定的模式。

代码语言:javascript
复制
grep -r search_pattern directory_path

仅显示文件名

默认情况下,grep 显示匹配的行。如果您对多个文件运行了搜索,并且只想查看哪些文件包含该字符串,则可以使用该-l选项。

代码语言:javascript
复制
grep -l search_pattern files_pattern

假设您想查看哪些 Markdown 文件包含“手册”一词,您可以使用:

代码语言:javascript
复制
grep -l handbook *.md

仅搜索全词

默认情况下,grep 将显示包含给定字符串的所有行。你可能并不总是想要那个。如果您正在搜索单词“done”,它还会显示包含“doner”或“abandoned”字样的行。

要使 grep 仅搜索完整的单词,您可以使用以下选项-w:

代码语言:javascript
复制
grep -w search_string file

这样,如果您搜索单词“done”,它只会显示包含“done”的行,而不是“doner”或“abandoned”。

搜索正则表达式模式

您可以使用正则表达式模式为您的搜索提供超级动力。有一个允许使用正则表达式模式的专用选项-e和-E一个允许使用扩展正则表达式模式的选项。

代码语言:javascript
复制
grep -e regex_pattern file

搜索这个或那个模式

您可以在同一个 grep 搜索中搜索多个模式。如果要查看包含一种模式或另一种模式的行,可以使用 OR 运算符|。

但是,您必须以下列方式转义此特殊字符。

代码语言:javascript
复制
grep 'pattern1\|pattern' filename

您可以将多个模式与 OR 运算符一起使用。

AND 运算符没有特定选项。为此,您可以多次使用 grep 和管道重定向。

搜索二进制文件

Grep 默认忽略二进制文件。-a您可以使用该选项使其在二进制文件中搜索,就好像它是文本文件一样。

代码语言:javascript
复制
grep -a pattern binary_file

下载 Grep 命令备忘单

您可以收藏本文,以便快速参考 grep 命令选项和用例。

您还可以下载 PDF 格式的 grep 备忘单,将其打印并放在办公桌上,以便快速浏览,不会浪费时间。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Grep 命令的快速示例
    • 不区分大小写的搜索
      • 显示匹配行之前和之后的行
        • 显示不匹配的行
          • 计算匹配行数
            • 显示匹配行的行号
              • 在多个文件中搜索
                • 递归搜索目录中的所有文件
                  • 仅显示文件名
                    • 仅搜索全词
                      • 搜索正则表达式模式
                        • 搜索这个或那个模式
                          • 搜索二进制文件
                          • 下载 Grep 命令备忘单
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档