Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件
来源:互联网 发布:淘宝上能用微信支付吗? 编辑:程序博客网 时间:2024/05/21 07:34
Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件
前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容。
但是用这个脚本的同事很郁闷,因为执行时间比较长,越大的文件越长。于是找我,问我能不能实现一个更快的方案。
我想了一下,觉得之前的设计是脱裤子放屁,明明有更加简单的实现方法。
想办法获得我要截取的内容的开始的行号,然后再想办法获得我想截取的文件的结尾的行号,然后用两个行号来进行截断文件并输出。就可以实现这个效果了。
不过想法归想法,实现我还得实验一下,很快解决了问题,如下:
实现代码
#!/bin/bash# 设定变量log=3.logs='2017-08-01T01:3'e='2017-08-01T01:4'# 根据条件获得开始和结束的行号sl=`cat -n $log | grep $s | head -1 | sed 's/^[ \t]*//g' | cut -f1`el=`cat -n $log | grep $e | tail -1 | sed 's/^[ \t]*//g' | cut -f1`# 获取结果并输出到 res.log 文件sed -n "$sl","$el"'p' $log >> res.log
运行了一下,速度飞起啊!
以上脚本均在 mac 下测试通过,在 Linux 下可能会有稍许不同。
本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。
阅读全文
1 0
- Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件
- Shell 从日志文件中选择时间段内的日志输出到另一个文件
- 将tomcat的日志输出到日志文件中,重命名tomcat启动文件
- shell将脚本输出结果记录到日志文件
- 怎样将shell命令的输出信息同时显示在屏幕和保存到日志文件中
- 在log4j中,输出另一个日志文件的配置方式
- 关闭tomcat的stdout日志,并将System.out.println的内容输出到指定文件
- 执行系统命令并且将输出写到指定日志文件的shell脚本(1)
- 执行系统命令并且将输出写到指定日志文件的shell脚本(2)
- log4j将日志按模块输出到不同文件中
- 将日志中的错误信息输出到文件中
- eclipse控制将日志输出到外部指定文件中
- 配置logback将日志输出到文件
- 将CMD命令行下命令输出的内容存到文件中
- 将Control的日志输出到同一个文件
- 将tomcat运行时的日志输出到指定文件
- 将控制台的日志输出到外部文件
- 如何将LogCat上的日志输出到文件?
- nodejs中几个excel模块的简单对比
- JAVA常用类之Calendar类
- maven 项目 启动时异常:ClassNotFoundException
- (5)Mysql子查询与连接
- Java transient关键字
- Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件
- 使用FastReport.net在用户的应用程序中创建报表
- 首页
- ubuntu16.04 下安装matlab2013b
- window.event对象详细介绍
- Linux的神之助攻——Vim
- Yii2—视图(View)
- AngularJS Directives-Packt 2013 读书笔记
- iOS设计模式(二)----工厂模式