sed例子
以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例子的更多相关文章
- 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
- Linux shell之sed
sed编辑器逐行处理输入,然后把结果发送到屏幕. -i选项:直接作用源文件,源文件将被修改. sed命令和选项: a\ 在当前行后添加一行或多行 c\ 用新文本替换当前行中的文本 d 删除行 i\ 在 ...
- Shell中sed使用
sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 ...
- 正则与sed,grep,awk三剑客
系统登录顺序: /etc/profile /etc/profile.d/a.sh (a.sh自己建的) /root/.bash_profile /root/.bashrc /etc/bashrc /b ...
- shell-sed命令详解(转)
(转自http://blog.csdn.net/wl_fln/article/details/7281986) Sed简介 sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时 ...
- 通过几个例子看sed的模式空间与保持空间
SED之所以能以行为单位的编辑或修改文本,其原因在于它使用了两个空间:一个是活动的“模式空间(pattern space)”,另一个是起辅助作用的“暂存缓冲区(holdingspace)这2个空间的使 ...
- [svc]sed&awk过滤行及sed常用例子
- sed过滤行 sed '2p' sed '2,5p' sed '2p;3p;4p' - awk过滤行 awk 'NR==2' awk 'NR>=2 && NR <=3' ...
- awk、sed处理文件的简单例子
awk.sed对处理日志文件和写shell脚本时非常有益.这个东西,如果不经常操作,真心过一段时间就忘差不多..要掌握熟练,就要多练习,这没什么可说的. awk '条件{命令}' filename 假 ...
- linux(centos8):sed命令的应用例子
一,sed命令的用途 sed是Linux下一款功能强大的非交互流式文本编辑器, 可以对文本文件进行增.删.改.查等操作, 支持按行.按字段.按正则匹配文本内容. 说明:刘宏缔的架构森林是一个专注架构的 ...
随机推荐
- 标准键盘 acsii码值 表
码值 含义 备注 0x08 Backspace键 0x09 Tab键 0x0C Clear键 Num Lock关闭时的数字键盘5 0x0D Enter键 0x10 Shift键 0x1 ...
- 通过字节码分析Java异常处理机制
在上一次[https://www.cnblogs.com/webor2006/p/9691523.html]初步对异常表相关的概念进行了了解,先来回顾一下: 其源代码也贴一下: 下面来看一下jclas ...
- 大数据之路week05--day07(序列化、类加载器、反射、动态代理)
遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题 a,什么叫序列化和反序列化b,作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化c,seri ...
- vs2008重置方法
开始->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 命令提示 然后依次键入如下命令: ...
- Selenium+Java+Jenkins+TestNg
注意:各webdriver版本都有对应的浏览器版本 如果启动出现问题,可能是driver路径错误,需要使用System.setProperty("webdriver.firefox.bin& ...
- contos7上安装rabbitmq
#centeros7 安装erlang yum install erlang #启动扩展源 yum install epel-release #下载rabbitmq源文件 wget http://ww ...
- P4148 简单题 k-d tree
思路:\(k-d\ tree\) 提交:2次 错因:整棵树重构时的严重错误:没有维护父子关系(之前写的是假重构所以没有维护父子关系) 题解: 遇到一个新的点就插进去,如果之前出现过就把权值加上. 代码 ...
- leetcode解题报告(13):K-diff Pairs in an Array
描述 Given an array of integers and an integer k, you need to find the number of unique k-diff pairs i ...
- Codeforces 1272 A-E
Codeforces 1272 A-E A Three Friends 直接枚举所有情况,共\(3\times 3\times 3=27\)种. code #include<bits/stdc+ ...
- Python WEB框架之Flask
前言: Django:1个重武器,包含了web开发中常用的功能.组件的框架:(ORM.Session.Form.Admin.分页.中间件.信号.缓存.ContenType....): Tornado: ...