前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​如何在Linux中使用grep命令?

​如何在Linux中使用grep命令?

作者头像
用户6543014
发布2020-02-21 12:20:26
2.9K0
发布2020-02-21 12:20:26
举报
文章被收录于专栏:CU技术社区CU技术社区

在本文中,我们将讨论一个linux命令,该命令在Linux中进行搜索非常有用。那就是“ grep”命令。我们可以使用grep搜索文件中的文本模式,另一方面,可以使用find命令在linux OS中搜索文件。除此之外,我们还可以使用grep命令过滤搜索结果以捕获特定的文本字符串、单词或数字。这个命令对于Linux操作系统中的日常任务非常有用。

grep命令可以搜索与给定文本匹配的行,以便在您使用命令提及的给定文件内查找。输出是一组行,每行应具有您使用grep命令键入的特定单词或单词短语。

我们具体往下看

代码语言:javascript
复制
Syntax –

grep <word> <file name>
grep <word phrase> <file name>
grep <word> <file name1> <file name2> <file name n>
grep <options> <word> <file name>
cat <file name> | grep <word>

重要提示–文件名可以是绝对路径,也可以是相对路径。如果在您所在位置的文件内搜索文本,则可以使用相对路径。但是,如果要在其他位置的文件中搜索文本,则必须使用绝对路径。

要搜索单词短语时,请记住使用“”or“”。

您可以指定上述语法中提到的一个或多个文件名。

带示例的grep命令

1)在/ etc / passwd文件中搜索您的用户名

grep ubuntu / etc / passwd

输出

如语法中所述,我们也可以在以下方法中使用这个grep命令。首先,我们使用cat命令查看文件,然后使用grep输出该关键字。

两种方法都是正确的。

2)在多个文件中搜索关键字

grep ubuntu / etc / passwd / etc / groups

输出

在上图中,你可以看到我们在两个文件中输入了搜索关键字“ubuntu”(我们的用户名)的命令。它们是/ etc / passwd file和/ etc / group file,输出如上所示。我们可以清楚地看到输出具有三个部分,有紫色、白色和红色这三种颜色。

  • 紫色:文件名
  • 白色:包含我们的关键字(这次是ubuntu)
  • 红色:关键字

因此,当我们在多个文件中进行搜索时,通常grep命令会提供类似的输出。我们可以根据需要更改此输出,必须使用选项来做到这一点。

带选项的grep命令

选项1:使用-n获取文件的行号

选项2:使用-h从输出中隐藏文件名

grep ubuntu /etc/passwd /etc/groups

输出

选项3:使用-l仅列出包含我们关键字的文件

实际上,当我们在整个文件系统中搜索关键字时,上面的选项(-l)非常有用。

在简要讨论-l选项之前,我先介绍另一个选项。

选项4:使用-R递归搜索关键字

在上面的示例中,我正在根目录下搜索我的名字osanda。如果我们使用不带选项-R的命令,则将显示以下内容。

重要提示:Grep命令始终在文件而不是目录中搜索关键字。

由于/是根目录,因此我们需要提供-R选项以搜索子目录中的所有文件。

重要提示:2> / dev / null正在执行将输出中的错误发送到垃圾箱的操作。

让我们回到选项3,即-l选项。

如上图所示,我们只能将输出限制为仅查看包含关键字“ osanda”的文件名。

重要提示:您可以将-R或-r都用于递归grep。

选项5:使用-i忽略大小写

在这里,我创建了一个名为“ osa”的小文本文件。它在下面的同一行中包含两个单词。

参见下面的-i选项如何工作

3)在文件中搜索词组

选项6:使用-c计数文件中的结果数

上面的示例计算了/ var / log / syslog文件中有错误的行数。

选项7:使用-w搜索确切的关键字

认为您正在搜索一个名为boo的单词。猜猜我们有一个名为example.txt的文件。在该文件内部,它的行与boo完全相同。有些行可能包含fooboo,fooboob,booboo,blackboo。因此,如果将grep命令键入为noramlly(grep boo example.txt),我们将在输出中获得所有这些行,但是我们不需要它们,我们只需要仅包含boo的行。因此,命令应如下所示。

grep -w boo example.txt

如何在单个文件中搜索两个单词

grep -w'word1 | word2'example.txt

选项8:使用-v选项可忽略搜索结果中的关键字

在上面的示例中,我从输出中忽略了关键字“ ubuntu”。因此,除了ubuntu之外,它还会列出/ etc / passwd文件中的行。

下面会给出一些如何使用grep的示例

选项9:在使用–exclude-dir搜索时忽略一个目录

猜猜我们需要忽略要搜索的目录。您需要使用提及的选项提及目录名称。例如– grep -Ri“ index.html” –exclude-dir博客这里的博客是我们搜索时需要跳过的目录。

重要提示–我们不仅可以使用grep命令搜索文件中的字符串模式,还可以从不同的命令输出中过滤特定的字符串模式。

1)显示所有磁盘详细信息

2)检查syslog文件中的错误

3)从包列表结果中获取mysql-server包

4)检查正在运行的特定服务的进程

猜猜您需要检查已迁移的进程是否正在运行。无论您需要检查什么服务。通常,我们使用ps aux命令来检查进程,它输出当前正在运行的所有进程。但是我们只需要检查内存缓存进程。我们可以在管道中使用grep命令,如下所示。

ps aux | grep memcached

考虑一下是否需要找到为memcached服务分配端口。然后您应该尝试如下

netstat -plunt | grep memcached

最后,送给大家一句话,多读书、多实践!

——The End——

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

本文分享自 SACC开源架构 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档