以care.log这个log文件为例,

care.log:

05:44:31,816 DEBUG RawAggregationWorker:70 - LTS is working on Raw Data Aggregation execute Start, Now:1535003071816, currentTimeMillis:1535003071816
05:44:31,816 DEBUG RawAggregationWorker:57 - LTS is working on Raw Data Aggregation to dataPoints:22, careConfig.getLtsRawaggregationDataPoints():10
05:46:53,264 DEBUG RawAggregationWorker:100 - LTS is working on Raw Data Aggregation execute End, Now:1535003071816, currentTimeMillis:1535003213264, now Done Took: 141448ms, currentTime Done Took: 141448ms
05:46:53,265 DEBUG MinAggregationWorker:59 - LTS is working on Min Data Aggregation execute Start, Now:1535002591816, currentTimeMillis:1535003213265
05:55:04,112 DEBUG MinAggregationWorker:108 - LTS is working on Min Data Aggregation execute End, Now:1535002591816, currentTimeMillis:1535003704112, now Done Took: 1112seconds, currentTime Done Took: 490seconds 05:55:04,112 DEBUG HourAgingWorker:53 - LTS is working on Hourly Aging, now: 1535003011816, currentTimeMillis:1535003704112
05:58:29,697 DEBUG HourAgingWorker:69 - LTS is working on Hourly Aging, now Done Took: 897881ms, currentTime Done Took: 205585ms

希望结果为:

Raw Data Aggregation Start-Now:1535003071816;currentTimeMillis:1535003071816;Raw Data Aggregation-dataPoints:10
Raw Data Aggregation End-Now:1535003071816;currentTimeMillis:1535003213264
Min Data Aggregation Start-Now:1535002591816;currentTimeMillis:1535003213265
Min Data Aggregation End-Now:1535002591816;currentTimeMillis:1535003704112
Hourly Aging-now: 1535003011816;currentTimeMillis:1535003704112
Hourly Aging-now Done Took: 897881ms;currentTime Done Took: 205585ms
  • 匹配从行首到关键字并替换
sed 's#^.* on ##g'
  • 匹配关键字并保留匹配到关键字其中一部分(用括号指代要保留的部分在#后用\1\2.....表示)
sed 's#\(^.*\) execute \(.*\),.*\(Now:[0-9]\{13\}\), \(currentTimeMillis:[0-9]\{13\}\).*$#\1 \2-\3;\4#g'
  • 合并匹配到的行与上一行
sed '{N;s/\(.*\)\n\(^.*dataPoints.*$\)/\1;\2/;t merge;P;D};:merge;p;d'
  • 删除空行
sed '/^$/d'

awk NF
  • 最后,合并在一起:
 cat care.log | sed 's#^.* on ##g' | sed 's#\(^.*\) execute \(.*\),.*\(Now:[0-9]\{13\}\), \(currentTimeMillis:[0-9]\{13\}\).*$#\1 \2-\3;\4#g' | sed 's#^\(.*\) to \(dataPoints\).*DataPoints():\([0-10]\{1,\}\)$#\1-\2:\3#g' | sed 's#\(^.*\), \(now.*\), \(current.*:.*\)$#\1-\2;\3#g' | sed '{N;s/\(.*\)\n\(^.*dataPoints.*$\)/\1;\2/;t merge;P;D};:merge;p;d' |awk NF

sed例子的更多相关文章

  1. sed 例子

    sed 应用示例 给1.1.1.1后面增加2.2.2.2: sed -i 's/Server=1.1.1.1/&,2.2.2.2/g' zabbix_agentd.conf

  2. Linux shell之sed

    sed编辑器逐行处理输入,然后把结果发送到屏幕. -i选项:直接作用源文件,源文件将被修改. sed命令和选项: a\ 在当前行后添加一行或多行 c\ 用新文本替换当前行中的文本 d 删除行 i\ 在 ...

  3. Shell中sed使用

    sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 ...

  4. 正则与sed,grep,awk三剑客

    系统登录顺序: /etc/profile /etc/profile.d/a.sh (a.sh自己建的) /root/.bash_profile /root/.bashrc /etc/bashrc /b ...

  5. shell-sed命令详解(转)

    (转自http://blog.csdn.net/wl_fln/article/details/7281986) Sed简介 sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时 ...

  6. 通过几个例子看sed的模式空间与保持空间

    SED之所以能以行为单位的编辑或修改文本,其原因在于它使用了两个空间:一个是活动的“模式空间(pattern space)”,另一个是起辅助作用的“暂存缓冲区(holdingspace)这2个空间的使 ...

  7. [svc]sed&awk过滤行及sed常用例子

    - sed过滤行 sed '2p' sed '2,5p' sed '2p;3p;4p' - awk过滤行 awk 'NR==2' awk 'NR>=2 && NR <=3' ...

  8. awk、sed处理文件的简单例子

    awk.sed对处理日志文件和写shell脚本时非常有益.这个东西,如果不经常操作,真心过一段时间就忘差不多..要掌握熟练,就要多练习,这没什么可说的. awk '条件{命令}' filename 假 ...

  9. linux(centos8):sed命令的应用例子

    一,sed命令的用途 sed是Linux下一款功能强大的非交互流式文本编辑器, 可以对文本文件进行增.删.改.查等操作, 支持按行.按字段.按正则匹配文本内容. 说明:刘宏缔的架构森林是一个专注架构的 ...

随机推荐

  1. python3 random

    一.random 1.生成伪随机数 2.伪随机数是可预测的,严格意义上不具有随机性质,通常用数学公式的方法(比如统计分布,平方取中等)获得 3.正如数列需要有首项,产生伪随机数需要一个初值用来计算整个 ...

  2. 从头至尾一点点实现自己的ViewPager效果

    对于ViewPager,应该没有人在项目中没使用过它,效果非常的赞,使用也非常简单,但是如果自己来实现这样的效果,我想并非三下五除二的事了,这里涉及到怎么自定义ViewGroup了,它相比自定义Vie ...

  3. Js获取字符串的显示宽度/高度

    重点:1.在H5页面,文字大小单位为rem2.不同的font-family,文字的宽度不一样3.文字宽度同时受font-size和font-family影响 思路:在页面动态创建一个节点,设置节点的f ...

  4. 【JUC系列第二篇】-原子变量

    作者:毕来生 微信:878799579 1.什么是原子变量? ​ 原子变量保证了该变量的所有操作都是原子的,不会因为多线程的同时访问而导致脏数据的读取问题. 2.通过synchronized保证原子操 ...

  5. C# List<T> 集合使用

    1.初始化集合 , ); , ); , ); ) { graham, emerson, mario }; 2. 添加元素 racers.Add(, )); racers.Add(, )); racer ...

  6. C# MVC中直接执行Js

    .NET MVC里如何在服务器端执行JS: 三种解决方案: 1.直接返回JavaScript. public ActionResult XXXAction1() {      return JavaS ...

  7. Activiti服务类- IdentityService服务类

    转自:https://www.cnblogs.com/liuqing576598117/p/9815013.html 一.内置用户组(角色)设计表概念 用户和组(或者叫做角色),多对多关联,通过关联表 ...

  8. MySQL 5.7 OOM问题诊断——就是这么简单

    转载自:http://www.sohu.com/a/114903225_487483 Inside君最近把金庸先生的笑傲江湖重看了三遍,感慨良多.很多工作.管理.生活.学习上的问题都能在其中一窥究竟, ...

  9. 创建全局变量用以保存传递MFC中不同窗口中的数据

    格式如下: //DATA_TEMP.h class CDATA_TEMP{public: CDATA_TEMP(); virtual ~CDATA_TEMP();public: static int ...

  10. 修改quartus 配置rom时memory很小的问题。

    我用的是quartus ii 13版本的仿真软件,在做VGA实验时显示用到640*480的图片所以就需要307200*1bit的rom.但是坑爹的megawizard- plug-in-manager ...