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

1. 搜索和查找文件
列出系统上安装了哪些python模块
# rpm -qa | grep -i python  
输出
python-kitchen-1.1.1-5.el7.noarchpython-ipy-0.75-6.el7.noarchpython-decorator-3.4.0-3.el7.noarchpython-syspurpose-1.24.48-1.el7.centos.x86_64python2-pyasn1-0.1.9-7.el7.noarchpython-requestbuilder-0.7.1-1.el7.noarchpython-pycparser-2.14-1.el7.noarchpython-pyudev-0.15-9.el7.noarchpython2-pip-8.1.2-14.el7.noarchpython-configobj-4.7.2-7.el7.noarchpython-gobject-base-3.22.0-1.el7_4.1.x86_64python-backports-1.0-8.el7.x86_64python-progressbar-2.3-4.el7.noarchpython-perf-3.10.0-1160.31.1.el7.x86_64python-2.7.5-90.el7.x86_64python3-rpm-generators-6-2.el7.noarchpython2-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  


CANopen总线分析软件推荐
德国罗德与施瓦茨FSH3手持式频谱分析仪
亚马逊宣布将将智能语音助手Alexa的工作转移到内部芯片上
充电器发烫,下面可以垫冰块吗
谷歌多款iOS应用仍未上线隐私标签
Linux中grep命令的12个实际例子
Intersil推出用于智能手机的集成显示电源和LED驱动器单芯片方案
PPTV手机PPKing7s评测 打破时间和地点的限制
正确清理苹果手机内存的方法介绍
vivoxplay6,三星c9音乐手机,论专业我只服Hifi音质!
saas系统架构经验总结
Google的第五代TPU,推理性能提升2.5倍
软件定义存储的POWER之道
精准铸就实力 专业成就“菲”凡——南通菲希尔20周年庆典
光纤收发器的种类以及与光模块、跳线的连接使用
Bourns发布PLN0xx-ED21平面变压器,可满足高频、小空间功率转换需求
英特尔携手京东云构建绿色数据中心高密度算力方案,降低TCO和碳排放
留学生联合发明比头发细一百倍的3D打印微纳米纤维传感器
米尔科技Keil C166 开发工具介绍
基于Jini互联技术实现分布式嵌入式系统的设计