-
006 Linux 命令三剑客之-grep
01 一起来认识 grep!
Linux 命令三剑客,sed、grep、awk。
- sed:擅长数据修改。
- grep:擅长数据查找定位。
-
awk:擅长数据切片,数据格式化,功能最复杂。
grep 可以说是这三个命令中的红人,是我们日常使用频率最高的命令,下面和锅锅一起来搞定它。
02 grep 命令常用可选参数
- -n # 显示行号。
- -i # 不区分大小写。
- -c # 统计匹配行,命中查找字符串的总行数。
- -v # 显示不包含匹配文本的所有行。
- -r # 递归处理。
- -E # 使用正则表达式作为匹配进行查找(注:-e 没有-E 支持的完整)。
- --include # 指定匹配的文件类型。
-
--exclude # 过滤不需要匹配的文件类型。
使用示例:
- grep -i "error" info.log
- grep -in "error" info.log #不区分大小写,并显示行号。
03 grep 同时查找多个文件
- grep -in "key" info.log warn.log # 从文件info.log 和 warn.log 查找字符串"key",不区分大小写,并显示行号。
- grep -n "key" * # 查询当前目录下所有文件中包含字符串"key",并显示对应的行号。
04 grep 递归查找
前面已经总结过,-r/R参数,即 recursion,递归的意思。
- grep -rn "key" * # 递归查询当前目录及其子目录所有文件中包含字符串"key",并显示对应的行号。
05 grep 查找对应字符前后 n 行
- grep -a10 "bug" info.log #查看"bug"字符后的10行,a->after。
- grep -b10 "bug" info.log # 查看"bug"字符前的10行,b->before。
- grep -c10 "bug" info.log # 查看"bug"字符前后各10行。
06 grep 常用组合命令示例
- history|grep rm # 查找历史命令中执行了哪些删除命令。
- cat *.log | grep 'exception' # 查找当前目录下所有log日志中的exception字符行。
- ps -ef|grep java # 此命令为一般运维中最常用命令,查询linux进程中是否运行了此程序。
- rpm -qa |grep yum # 查询linux下是否有安装过此rpm包。
- grep -En '^2020' info.log # 使用正则表达式查找,查找以 2020 开头的行,并显示其行号。
- grep -rn "warn" * --include "*.log" # 递归查询当前目录及其子目录所有log类型文件中包含字符串"warn",并显示对应的行号。
- netstat -nap|grep -E "6651"|grep -E "203.130.41.24" # 多个条件过滤查找。
- tail -1000f info.log | grep -E "aaa|bbb" # aaa 或 bbb 的条件都可以搜索到,这个命令实践中,滚动实时查看日志很常用。
- tail -10000f info.log |grep 'check' >> call.log # 查找,并把符合规则的输出到对应文件中
- grep -E 'keyword1.*keyword2' info.log # 多个关键字同时出现查找过滤
- grep -E '^Error' info.log |grep 'failed'|awk -F ' ' '{print $10}' # 查找以 Error 开头,过滤包含 failed 的行,并以空格分隔,输出第10个的内容
07 grep 相关的拓展命令
- pgrep:查找正在运行的程序,pgrep 是 grep 的扩展功能,同样的还有 egrep、fgrep。
- egrep:扩展正则表达式,相当于grep –E。
- fgrep:不识别解析正则表达式,一般很少用。
08 小结
- grep 命令,擅长查找字符串,正向查找,反向查找,正则查找,多文件查找,递归查找等。
- grep 查找对应字符前后 n 行,对大日志检索关键字时比较有用。此外 grep 还可以配合其他命令一起大展身手!配合正则表达式,可以更加灵活的实现查找功能,正则表达式相关的内容前面的文章有一些总结。
出处:https://www.cnblogs.com/bilahepan/p/15845049.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式