Grep 代表全局正则表达式打印。这是一个有用的命令,被 Linux 系统工程师广泛使用,在使用常规文件和系统中搜索字符串或模式时。
在本文中,TipsMake.com 将向您展示如何使用 grep 命令(包括许多示例)。
注意:本文在运行 Debian 10 的机器上测试了所有命令和示例。
你知道如何使用 grep 吗?
- 先决条件
- 在 Debian 10 上安装 grep
- 使用 grep 命令
- 在系统中搜索特定文件或目录
- 使用 grep 搜索完整的单词
- 在文件中搜索特定的一段文本
- 在多个文件中进行搜索
- 使用一个 grep 命令搜索两个不同的单词
- 为适合文本的行编号
- 反向搜索
- 计数匹配
- 显示匹配特定文本的文件名
- 只显示匹配的文本
- 显示以特定单词开头的行
- 显示以特定单词结尾的行
先决条件
您需要一台运行 Debian 10 且具有 root 访问权限的计算机。
在 Debian 10 上安装 grep
默认情况下,grep 已安装在包括 Debian 10 在内的大多数系统上。如果尚未安装,请打开终端并以 root 身份发出以下命令.
apt-get install grep
当您被要求确认时,按Y
,然后从键盘输入。等待安装过程完成。
通过在终端中运行以下命令检查 grep 的版本。
grep--version
该命令将返回版本以及其他详细信息,如下所示。
<图>使用 grep 命令
在系统中搜索特定文件或目录
当你想在你的系统中搜索或定位一个特定的文件时,命令的语法如下。
ls-l <đường dẫn của thư mục muốn tìm kiếm> | grep-i 'tên file hoặc thư mục'
如果包含空格,需要将要查找的单词用引号引起来。假设您正在寻找 'network daemon' ,该命令将如下所示。
ls-l/etc/network/| grep-i '接口守护进程'
用 grep 搜索一个完整的单词
你可能会注意到,grep 已经返回了各种带有 'network' 字样的结果,例如 networks、networked 、networking 或 abcnetworking 等。如果您想限制搜索以包含特定的单词如果是这样,您必须使用 -w 选项,如下所示。
ls-l/etc/| grep-i-w 网络
在文件中搜索特定的一段文本
假设你有一个大文件,你想搜索一段特定的文本。该命令的语法如下。
grep – i 'văn bản bạn muốn tìm kiếm' 'tên file và đường dẫn'
在多个文件中进行搜索
如果你想从一个大目录中的大量文件和子文件夹中搜索一个文档,你可以使用-r选项来做到这一点。
grep-i-r "fox"
这是一个示例输出,显示了 test.txt 和 tree 中包含的单词 'fox'。 txt:
<图>你也可以证明ide 一个目录路径,它将搜索该目录及其子文件夹中的所有文件。
假设您要在 /etc/ 及其子文件夹中查找 'interfaces'。命令应该如下。
grep-i-r interfaces/etc/
这里是示例输出:
<图>用一个 grep 命令搜索两个不同的词
您可以使用 egrep 命令(grep 的变体)搜索两个不同的单词,如下所示。假设您要使用 -r 选项 在多个文件中搜索 fox 和 lazy words。 您必须在终端上运行以下命令。
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中出现了3次 文件 .
<图>显示与特定文本匹配的文件名
如果你想找到包含你特定单词的文件,你可以使用 -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
这里是示例输出:
<图>
0 评论