如何在 Debian 10 上使用 grep 命令如何在 Debian 10 上使用 grep 命令如何在 Debian 10 上使用 grep 命令如何在 Debian 10 上使用 grep 命令
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 10 上使用 grep 命令

Grep 代表全局正则表达式打印。这是一个有用的命令,被 Linux 系统工程师广泛使用,用于在常规文件和系统中搜索字符串或模式。

在本文中,我将通过大量示例来演示 grep 命令的用法。我已经在 Debian 10 机器上测试了所有命令和示例。

先决条件

您需要拥有一台具有 root 权限的 Debian 10 计算机。

在 Debian 10 上安装 grep 命令

默认情况下,大多数系统(包括 Debian 10)都安装了 grep。如果未安装,请打开终端并使用 root 权限发出以下命令。

apt-get install grep

当系统要求您确认时,请按 y,然后从键盘输入。等待安装完成。

由于 grep 已经安装在我的机器上,请检查上面的屏幕截图。让我们通过在终端上运行以下命令来检查其版本。

grep --version

它还应该返回版本以及其他详细信息,如下所示。

使用 grep 命令

一旦我们的机器上有了可用的 grep 命令,我们就可以使用它了。

搜索系统中的特定文件或目录

当您想要搜索或定位系统中的特定文件时,命令的语法应如下所示。

ls -l <搜索目录路径> | grep -i "文件或目录名"

我想在/etc/中搜索网络目录。完整的命令应如下所示。

ls -l /etc/ | grep -i "network"

“i”选项忽略大小写。因此,它应该将网络、网络或网络视为类似的。

以下是示例输出。

假设我想搜索位于 /etc/network/ 的“interfaces.d”文件,您必须运行以下命令。

ls -l /etc/network/ | grep -i "interfaces.d"

如果要查找的单词包含空格,则必须将其包含在双引号中。假设我们正在搜索“网络守护程序”,上面的命令应如下所示。

ls -l /etc/network/ | ls -l /etc/network/ | grep -i“接口守护进程”

使用 grep 搜索完整的单词

您可能已经注意到,grep 返回了各种结果,其中包括“网络”,例如网络、networked、networking 或 abcnetworking 等。如果您想限制搜索以包含该特定单词,则必须使用 -w 选项,如下所示。

ls -l /etc/ | grep -i -w network

以下是示例输出。

搜索文件中的特定文本

我们有一个案例,当您有一个大文件并且您想要搜索特定文本时。该命令的语法应如下所示。

grep - i "textyouwanttosearch" "filenameandpath"

假设我想在当前目录中的 test.txt 中搜索单词“fox”。在终端上运行以下命令。

grep -i "fox" test.txt

下面是示例输出,它仅返回文件中包含单词“fox”的那些行。

执行递归搜索(在多个文件中搜索)

如果您想从目录内的大量文件和子目录中搜索文本,可以使用 -r 选项执行递归研究。

grep -i -r "fox"

下面是示例输出,显示单词 Fox 出现在 test.txt 和 tree.txt 文件中所示的行中。

您还可以提供目录路径,它将搜索该目录及其子目录中的所有文件。

假设我想对 /etc/ 及其子目录中的文本“interfaces”执行递归研究。该命令应按如下方式执行。

grep -i -r interfaces /etc/

以下是示例输出。

使用单个 grep 命令搜索两个不同的单词

您可以使用单个egrep(grep 的变体)命令搜索两个不同的单词,如下所示。假设我想使用-r选项在多个文件中搜索完整的单词fox和lazy。您必须在终端上运行以下命令。

egrep -w -r "fox|lazy"

以下是示例输出。

对与文本匹配的行进行编号

另一个有用的选项是 -n,它对与文本匹配的行进行编号。以下是说明如何使用 -n 选项的示例。

grep -i -n "fox" test.txt

下面是示例输出,其中对与单词“fox”匹配的行进行编号。

反向搜索

这与我们上面所做的相反。如果要返回不包含指定单词的文本,可以使用 -v 选项。

下面是演示 -v 选项用法的示例。

grep -v -i "fox" test.txt

以下是示例输出。

上述所有选项(-n 等)也可以与 -v 选项一起应用。

计算匹配数

如果您只想计算特定文本的匹配数,可以使用 -c 选项。

让我们计算当前目录下 test.txt 中的单词“fox”。在终端上运行以下命令。

grep -i -c fox test.txt

下面是执行上述命令后的示例输出,显示单词“fox”在 test.txt 文件中匹配了三次。

显示与特定文本匹配的文件名

如果您想查找包含特定单词的文件,可以使用 -l 选项和 -r ,如下所示。假设所有文件都位于当前目录中,并且您正在搜索或匹配的特定单词是“fox”。

grep -i -r -l fox

下面是示例输出,显示单词 Fox 存在于 test.txt 以及子目录和文件 asif.txt 中

仅显示匹配的文本

默认情况下,grep 显示与您所需的文本或单词匹配的整行。如果你想让 grep 显示匹配的单词,你可以使用 -o 选项,如下所示。

grep -i -o fox test.txt

以下是示例输出。

显示以特定单词开头的行

如果要检索以特定单词开头的所有行,可以使用 ^运算符,如下所示。

假设您要返回所有以“unix”开头的行,并且文件是位于当前目录中的 log.txt。

在终端上运行以下命令。

grep -i "^unix" log.txt

以下是示例输出。

显示以特定单词结尾的行

如果要从文件中返回以特定单词结尾的所有行,可以使用 $运算符,如下所示。假设单词是“linux”,并且您要搜索的文件是位于当前目录中的 rev.txt。

在终端上运行以下命令。

grep -i "linux$" rev.txt

以下是示例输出。

这就是我关于 grep 命令使用的教程。我已经演示了大多数 grep 选项,这些选项是您日常工作中最常用且可能需要的。 grep 命令有一些变体,包括 zgrep 等。您可以自行探索。

©2015-2025 艾丽卡 support@alaica.com