专栏首页CU技术社区​如何在Linux中使用grep命令?

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

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

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

我们具体往下看

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——

本文分享自微信公众号 - CU技术社区(ChinaUnix2013),作者:栈栈

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 是真的很详细了!Linux中的Grep命令使用实例

    在本教程中,您将学习如何在Linux中使用非常重要的grep命令。我们将讨论为什么此命令至关重要,以及如何在命令行中将其用于日常任务中。让我们深入了解一些解释和...

    用户6543014
  • 你男朋友是高可用么? | 谈分布式系统的概念

    3.负载均衡:你和多个女朋友轮流约会。星期一,三,五跟A约会,二,四,六和B约会,叫RoundRibon算法。

    用户6543014
  • 你应该知道这些有意思的代码

    Kyle McCormick 在 StackExchange 上发起了一个叫做 Tweetable Mathematical Art 的比赛,参赛者需要用三条推...

    用户6543014
  • 是真的很详细了!Linux中的Grep命令使用实例

    在本教程中,您将学习如何在Linux中使用非常重要的grep命令。我们将讨论为什么此命令至关重要,以及如何在命令行中将其用于日常任务中。让我们深入了解一些解释和...

    用户6543014
  • 【Go 语言社区】linux 下Go服务器部署(也同样适合C++等)

    作为服务器开发人员,GO语言内网测试数据及调试肯定很简单,如果你在Windows下开发 直接编成EXE执行就可以,然后部署外网在打包成linux的执行文件(交...

    李海彬
  • Linux - 常用命令:grep

    参数 -c 只输出匹配行的个数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n...

    晴天Online
  • SVN Log命令常用组合【转】

    转自:https://blog.csdn.net/xuanwenchao/article/details/8875103

    用户3033338
  • Linux三剑客之grep

    版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

    耕耘实录
  • 常用Linux命令整理

    1、匹配文本内容,常用grep -E '查找的内容' 文件名。更多用法参考:https://www.cnblogs.com/leo-li-3046/p/5690...

    用户5325874
  • Linux常用命令03 - grep

    grep 命令代表“全局正则表达式 print” ,它是 Linux 中最强大和最常用的命令之一。

    叉叉敌

扫码关注云+社区

领取腾讯云代金券