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

71cee75941663e74b3a55e4abc4f7d55.png

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

这篇记录的是grep命令

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

//查看进程时进行过滤
ps -ef | grep xxx

好像就这样...

现在用它来匹配文件内容

实例操作

首先 待查找的文件如下

[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: 在日志文件中查找出现过改字符串的文件

[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: 打印出在该文件内容中中出现的次数

[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: 单独在一个文件中出现的行数

[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的字符串的文本行信息

[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查看参数的使用


首发来自公众号: 程序员品​mp.weixin.qq.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值