良许Linux教程网 干货合集 Linux中grep命令的12个实际例子

Linux中grep命令的12个实际例子

本篇文章重点为大家讲解一下Linux中grep命令的12个实际例子,有需要的小伙伴可以参考一下。

image-20230320214117567

1. 搜索和查找文件

列出系统上安装了哪些python模块

# rpm -qa | grep -i python

输出

python-kitchen-1.1.1-5.el7.noarch
python-IPy-0.75-6.el7.noarch
python-decorator-3.4.0-3.el7.noarch
python-syspurpose-1.24.48-1.el7.centos.x86_64
python2-pyasn1-0.1.9-7.el7.noarch
python-requestbuilder-0.7.1-1.el7.noarch
python-pycparser-2.14-1.el7.noarch
python-pyudev-0.15-9.el7.noarch
python2-pip-8.1.2-14.el7.noarch
python-configobj-4.7.2-7.el7.noarch
python-gobject-base-3.22.0-1.el7_4.1.x86_64
python-backports-1.0-8.el7.x86_64
python-progressbar-2.3-4.el7.noarch
python-perf-3.10.0-1160.31.1.el7.x86_64
python-2.7.5-90.el7.x86_64
python3-rpm-generators-6-2.el7.noarch
python2-wheel-0.29.0-2.el7.noarch
...

首先,我们跑了dpkg –l,其中列出了已安装*.deb系统上的软件包。其次,我们将该输出通过管道传输到grep –i python,它简单地说明grep并过滤掉并返回其中包含’python’的所有内容。”这–i选项是忽略大小写,因为grep区分大小写。使用–i选项是进入的好习惯,除非您当然想确定更具体的搜索。`

2. 搜索和过滤文件

grep还可用于在单个文件或多个文件中搜索和过滤。让我们来看看这个场景:

删除nginx配置文件所有注释行

# grep –v "#"  /etc/nginx/nginx.conf

–v选项告诉grep反转其输出,这意味着不是打印匹配的行,而是执行相反的操作并打印所有与表达式不匹配的行,在这种情况下,#注释行。

3. 仅查找所有 .mp3 文件

多条件筛选

# find . –name "*.mp3" | grep –i jaychou | grep –vi "七里香"

在这个例子中,我们使用 find 打印所有带有*.mp3 extension, 管道它grep –i过滤并打印所有名称为 “的文件”JayZ” 然后另一个管道到grep –vi它过滤掉并且不打印所有带有字符串的文件名(在任何情况下)”remix“。

4. 显示搜索字符串前后的行数

另一个选项是–A–B开关,显示匹配的行和搜索字符串之前或之后的行数。虽然手册页给出了更详细的解释,但我发现最容易记住的选项是–A=after, 和–B=before

# ifconfig | grep –A 4 eth0
# ifconfig | grep  -B 2 UP

5. 打印匹配周围的行数

grep 的–Coption 类似,但不是打印字符串之前或之后的行,而是打印任一方向的行:

# ifconfig | grep –C 2 lo

6. 计算匹配次数

类似于管道grep字符串到字数(wcprogram) grep 的内置选项可以为您执行相同的操作:

# ifconfig | grep –c inet6

7. 按给定字符串搜索文件

–n选项grep在编译错误期间调试文件时非常有用。它显示给定搜索字符串的文件中的行号:

# grep –n "main" setup..py

8. 在所有目录中递归搜索字符串

如果要在当前目录和所有子目录中搜索字符串,可以指定–r递归搜索的选项:

# grep –r "function" *

9. 搜索整个模式

通过–wgrep选项搜索字符串中的整个模式。例如,使用:

# ifconfig | grep –w "RUNNING"

将打印出包含引号中的模式的行。另一方面,如果您尝试:

# ifconfig | grep –w "RUN"

由于我们不是在搜索模式,而是整个单词,因此不会返回任何内容。

10. 在压缩文件中搜索字符串

zgrep 过滤查询压缩文件。类似于zcat, 用于gzipped文件。它采用相同的选项grep并以相同的方式使用:

# zgrep –i error /var/log/rumenz.gz

11. 匹配文件中的正则表达式

egrep是另一种代表 “Extended Global Regular Expression“。它识别额外的表达元字符,例如at + ? |().

如果需要,egrep 对于搜索源文件和其他代码段非常有用。可以通过指定从常规 grep 调用它–E选项。

# grep –E

12. 搜索固定模式字符串

该命令用来查找与给定的字符串相匹配文件的行,fgrep命令查询速度比grep快,但是它不够灵活,不能用正则表达式。该命令等价于grep -F。

当前目录下所有以 .c字符串结尾的文件中搜索字符串strcpy:

# fgrep strcpy *.c

良许花了一个半月的时间研发了一门 Linux 命令课程,欢迎购买学习!

课程特色:

  1. 详细总结 150 个高频使用命令,学完可应对工作中 95% 命令需求;
  2. 答疑群提供无限次答疑服务,答疑群氛围很好;
  3. 总时长超 10 小时,媲美大课时长。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部