Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >linux下根据字符串匹配文件内容来查找文件

linux下根据字符串匹配文件内容来查找文件

原创
作者头像
cg错过
修改于 2020-11-19 06:34:38
修改于 2020-11-19 06:34:38
3.6K00
代码可运行
举报
文章被收录于专栏:程序笔记程序笔记
运行总次数:0
代码可运行

前言: 在这家公司比较少接触到linux, 内网测试都是部署在windows上. 近期部署了外网linux上, 测试在线上遇到的一些bug需要解决, 一时间忘记了一些命令, 于是打算补一补, 用到了就记一记

这篇记录的是grep命令

通常用到比较多的地方就是用来过滤输出, 如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//查看进程时进行过滤
ps -ef | grep xxx

好像就这样...

现在用它来匹配文件内容

实例操作

首先 待查找的文件如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[cailinfan@game1 common]$ ls
common.log                common.log.2020.11.03.22  common.log.2020.11.04.10  common.log.2020.11.04.16  common.log.2020.11.04.22  common.log.2020.11.05.11  common.log.2020.11.05.17  common.log.2020.11.06.00  common.log.2020.11.06.13
common.log.2020.11.03.17  common.log.2020.11.03.23  common.log.2020.11.04.11  common.log.2020.11.04.17  common.log.2020.11.04.23  common.log.2020.11.05.12  common.log.2020.11.05.18  common.log.2020.11.06.04  common.log.2020.11.06.14
common.log.2020.11.03.18  common.log.2020.11.04.01  common.log.2020.11.04.12  common.log.2020.11.04.18  common.log.2020.11.05.01  common.log.2020.11.05.13  common.log.2020.11.05.19  common.log.2020.11.06.09  common.log.2020.11.06.15
common.log.2020.11.03.19  common.log.2020.11.04.02  common.log.2020.11.04.13  common.log.2020.11.04.19  common.log.2020.11.05.04  common.log.2020.11.05.14  common.log.2020.11.05.20  common.log.2020.11.06.10  common.log.2020.11.06.16
common.log.2020.11.03.20  common.log.2020.11.04.04  common.log.2020.11.04.14  common.log.2020.11.04.20  common.log.2020.11.05.09  common.log.2020.11.05.15  common.log.2020.11.05.21  common.log.2020.11.06.11
common.log.2020.11.03.21  common.log.2020.11.04.09  common.log.2020.11.04.15  common.log.2020.11.04.21  common.log.2020.11.05.10  common.log.2020.11.05.16  common.log.2020.11.05.22  common.log.2020.11.06.12

当然是以xxx.log.yyyy.mm.dd.HH这种格式命名的了

场景1: 在日志文件中查找出现过改字符串的文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[cailinfan@game1 common]$ grep -l "1043846373394350080" common.log.2020.11.05.*
common.log.2020.11.05.13
common.log.2020.11.05.14
common.log.2020.11.05.16
common.log.2020.11.05.18
common.log.2020.11.05.19
[cailinfan@game1 common]$

场景2: 打印出在该文件内容中中出现的次数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[cailinfan@game1 common]$ grep -c "1043846373394350080" common.log.2020.11.05.*
common.log.2020.11.05.01:0
common.log.2020.11.05.04:0
common.log.2020.11.05.09:0
common.log.2020.11.05.10:0
common.log.2020.11.05.11:0
common.log.2020.11.05.12:0
common.log.2020.11.05.13:15
common.log.2020.11.05.14:13
common.log.2020.11.05.15:0
common.log.2020.11.05.16:14
common.log.2020.11.05.17:0
common.log.2020.11.05.18:25
common.log.2020.11.05.19:171
common.log.2020.11.05.20:0
common.log.2020.11.05.21:0
common.log.2020.11.05.22:0
[cailinfan@game1 common]$

场景3: 单独在一个文件中出现的行数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[cailinfan@game1 common]$ grep -n "1043846373394350080" common.log.2020.11.05.18
784:2020-11-05 18:30:08,022 [work-1-4] INFO  (LoginModule.java:237) - 玩家:1043846373394350080,登录并且数据加载完毕
816:2020-11-05 18:31:07,897 [epollEventLoopGroup-9-3] INFO  (GameServerHandler.java:57) - 95db87f8#1043846373394350080# closed cause by IDLE_TIME_OUT
817:2020-11-05 18:31:07,921 [work-1-4] INFO  (GameUser.java:86) - 1043846373394350080开始unload....1
1088:2020-11-05 18:59:34,475 [work-1-3] INFO  (CardPondModule.java:250) - 用户:1043846373394350080,高级卡池抽卡十次
...
[cailinfan@game1 common]$

场景4: 匹配即出现a又有b的字符串的文本行信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[cailinfan@game1 interface]$ grep -n "1043846373394350080" interface.log.2020.11.05.14 | grep "SCHeroLvUp"
4449:2020-11-05 14:29:50,822 INFO (SCMessage.java:39) - 479a7b76#1043846373394350080#SCHeroLvUp#{"guid":1043847521794785280}
5173:2020-11-05 14:32:33,072 INFO (SCMessage.java:39) - 479a7b76#1043846373394350080#SCHeroLvUp#{"guid":1043847521794785280}
5235:2020-11-05 14:32:38,872 INFO (SCMessage.java:39) - 479a7b76#1043846373394350080#SCHeroLvUp#{"guid":1043847521794785280}
5285:2020-11-05 14:32:43,872 INFO (SCMessage.java:39) - 479a7b76#1043846373394350080#SCHeroLvUp#{"guid":1043847521794785280}
[cailinfan@game1 interface]$

ojbk

大致就这样

详情自己去使用命令man grep或者grep --help查看参数的使用


首发来自公众号: 程序员品
首发来自公众号: 程序员品

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
字符串匹配问题
、字符串匹配问题 【问题描述】        字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]), ([])都应该输出NO。 【输入格式】strs.in        文件的第一行为一个整数n,表示以下有多少个由括好组成的字符串。接下来的n行,每行都是一个由括号组成的长度不超过255的字符串。 【输出格式】strs.out        在输出文件中有N行,每行都是
attack
2018/04/12
1.6K0
Kubernetes K8S之存储ConfigMap详解 通过目录创建通过文件创建通过命令行创建通过yaml文件创建当前存在的ConfigMap使用ConfigMap
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到健值对中。使用时可以用作环境变量、命令行参数或者存储卷中的配置文件。
踏歌行
2020/10/27
4.3K0
Apache ShardingSphere Proxy 负载均衡小练习
我们在容器启动4个mysql实例,docker-compose.xml 内容如下:
前Thoughtworks-杨焱
2021/12/07
1.4K0
Apache ShardingSphere Proxy  负载均衡小练习
Linux / MacOS 修改 ls 显示年月日的时间格式
本文参考转自米扑博客:Linux / MacOS 修改 ls 显示年月日的时间格式
阳光岛主
2020/02/25
4.6K0
Linux下Jboss安装使用+Jboss部署脚本「建议收藏」
Jboss是Java EE应用服务器(就像Apache是web服务器一样),专门用来运行Java EE程序的。
全栈程序员站长
2022/09/27
5K0
Linux下Jboss安装使用+Jboss部署脚本「建议收藏」
Linux 系统下查找文件命令
Linux 系统下查找文件命令,融合多部Linux经典著作,去除多余部分,保留实用部分。
王瑞MVP
2022/12/28
4.6K0
openstack报错——MainPID=0 Id=neutron-server.service ActiveState=failed
报错信息 [root@controller ~]# openstack-service status | grep failed MainPID=0 Id=neutron-server.service ActiveState=failed [root@controller ~]# systemctl restart neutron-server.service Job for neutron-server.service failed because a timeout was exceeded. See
宝耶需努力
2022/12/13
8970
openstack报错——MainPID=0 Id=neutron-server.service ActiveState=failed
Kafka学习笔记之Kafka应用问题经验积累
为了给kafka的进程添加GC日志信息,方便在以后重启的时候,加入GC日志: 修改bin/kafka-server-start.sh:
Jetpropelledsnake21
2020/12/25
9310
字符串匹配算法_字符串模式匹配算法
网络信息中充满大量的字符串,对信息的搜寻至关重要,因此子字符串查找(即字符串匹配)是使用频率非常高的操作:给定一段长度为N的文本和长度为M的模式字符串(N≥M),在文本中找到一个和模式串相匹配的子串。由这个问题可以延伸至统计模式串在文本中出现的次数、找出上下文(和该模式串相符的子字符串周围的文字)等更复杂的问题。
全栈程序员站长
2022/08/02
3K0
字符串匹配算法_字符串模式匹配算法
linux 安装 chromedriver,selenium 踩坑总结
2、Linux VM_0_10_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
shirishiyue
2019/03/18
31.2K2
【DB宝34】测试MySQL主从复制中主库表缺失主键会导致主从延迟的情况
可以看出,在ROW模式下,在主库上执行了一条UPDATE语句,更新了4万行记录,但是在binlog中,记录了4万行的UPDATE语句。
AiDBA宝典
2021/01/05
1.1K0
CentOS7系统使用rpm方式安装MySQL5.7
参考:https://blog.csdn.net/wudinaniya/article/details/81094578
别先生
2020/09/01
2.1K0
CentOS7系统使用rpm方式安装MySQL5.7
Jitsi服务器搭建过程问题记录
Jitsi是一个基于WebRTC的开源会议服务系统,主要提供高质量、安全、可扩展性强的视频会议业务能力!
呱牛笔记
2023/05/02
2.7K2
Jitsi服务器搭建过程问题记录
技术分享 | binlog 实用解析工具 my2sql
爱可生 MySQL DBA 团队成员,Oracle 10g OCM,MySQL 5.7 OCP,擅长数据库性能问题诊断、事务与锁问题的分析等,负责处理客户 MySQL 及我司自研 DMP 平台日常运维中的问题,对开源数据库相关技术非常感兴趣。
爱可生开源社区
2021/01/13
1.4K0
Kubernetes容器日志收集
日志从传统方式演进到容器方式的过程就不详细讲了,可以参考一下这篇文章Docker日志收集最佳实践,由于容器的漂移、自动伸缩等特性,日志收集也就必须使用新的方式来实现,Kubernetes官方给出的方式基本是这三种:原生方式、DaemonSet方式和Sidecar方式。
Zephery
2019/12/04
1.9K0
Openstack运维常见问题记录
dashboard 网络页面报错 Invalid service catalog service: network
后端云
2018/10/24
14.5K0
洛谷P3375 【模板】KMP字符串匹配
题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。 为了减少骗分的情况,接下来还要输出子串的前缀数组next。 (如果你不知道这是什么意思也不要问,去百度搜[kmp算法]学习一下就知道了。) 输入输出格式 输入格式: 第一行为一个字符串,即为s1(仅包含大写字母) 第二行为一个字符串,即为s2(仅包含大写字母) 输出格式: 若干行,每行包含一个整数,表示s2在s1中出现的位置 接下来1行,包括length(s2)个整数,表示前缀数组next[i]的值。 输入输
attack
2018/04/11
6920
洛谷P3375 【模板】KMP字符串匹配
Docker采用Dockerfile方式构建Tomcat容器镜像
注:远程部署的错误请参考Docker开启Tomcat8远程服务端管理角色权限构建tomcat远程部署镜像
拓荒者
2019/03/11
1.4K0
Docker采用Dockerfile方式构建Tomcat容器镜像
010.使用DBus贴源采集MySQL增量bin-log日志
下载canal安装包:https://github.com/BriData/DBus/releases,官网给了百度网盘下载链接,文件为v0.6.1/deployer-0.6.1/zip/dbus-canal-auto-0.6.1.zip和v0.6.1/deployer-0.6.1/zip/canal.zip,注意不要使用canal官方的安装包
CoderJed
2020/11/13
9200
010.使用DBus贴源采集MySQL增量bin-log日志
音视频开发之旅(59)- 捕获收集、定位分析 Native崩溃
我们知道Java崩溃是在Java代码中出现了未捕获异常,导致程序异常退出,常见的异常有:NPE、OOM、ArrayIndexOutOfBoundsException、IllegalStateException、ConcurrentModificationException等等。 还有一类崩溃,也是我们不得不关注,那就是Native层崩溃,这类崩溃不像Java层崩溃那样比较清晰的看出堆栈信息以及具体的崩溃。每当遇到是都要查找分析,写这篇的目的是帮助自己做下记录,也希望能帮到有类似困扰的你,下面我们开始一起学习实践吧。 本文学习实践的demo以张绍文《Android开发高手课》中的例子进行。
音视频开发之旅
2021/11/28
1.3K0
音视频开发之旅(59)- 捕获收集、定位分析 Native崩溃
推荐阅读
相关推荐
字符串匹配问题
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档