Linux比较时间&循环处理文件
2018-01-11 00:00
211 查看
log格式:
2018-01-11 18:08:08,993 [http-bio-8080-exec-30] INFO [cn.letv.mstore.api.util.Log] - CheckUpdateController|checkupdate|106.114.85.182||862044035460430|602001|20|20|||-1|1084|5
脚本如下:
注:
这种方式处理的特别慢,不妨在log进入循环前尽可能多的过滤掉无用的log。比如:cat mstore.log|grep 2018-01-11\ 15|while read line
粗略计算:
提取多项信息:
2018-01-11 18:08:08,993 [http-bio-8080-exec-30] INFO [cn.letv.mstore.api.util.Log] - CheckUpdateController|checkupdate|106.114.85.182||862044035460430|602001|20|20|||-1|1084|5
脚本如下:
#!/bin/bash date1="2018-01-11 15:14:53" date2="2018-01-11 15:56:18" #计算时间戳 t1=`date -d "$date1" +%s` t2=`date -d "$date2" +%s` #循环log cat mstore.log |while read line do #提取行前19位 t=${line:0:19} ct=`date -d "$t" +%s` #比较时间区间 if [[ $t1 -lt $ct ]] && [[ $t2 -gt $ct ]];then #提取行中的第5列,已|分割 echo $line|cut -d"|" -f5 fi done
注:
这种方式处理的特别慢,不妨在log进入循环前尽可能多的过滤掉无用的log。比如:cat mstore.log|grep 2018-01-11\ 15|while read line
粗略计算:
#直接过滤15点10分到16点的数据提取 cat mstore.log|grep '2018-01-11 15:[1-5]\{1\}'|cut -d"|" -f5
提取多项信息:
#过滤多串数字,以“|”分割,第9列长度大于0,打印一行的前19个字符 cat mstore.log.2018-01-20|grep CheckUpdateController\|checkupdate\||grep '866479022302706\|869841021330029'|awk -F "|" '{if(length($9)>0) print substr($0,0,19),$5,$9}'
相关文章推荐
- Linux系统下ACM时间查看修改和文件目录权限处理
- 请帮助我写个批处理 比较两个文件的修改时间 (转载)
- linux 循环处理文件夹下所有文件脚本
- Linux必学60个命令:文件处理
- bash比较文件时间和当前时间
- Linux必学60个命令文件处理(l转帖)
- jdk5.0 在linux下字体文件的处理(设置默认字体)
- Linux必须学会的60个命令---文件处理二(转载)
- Linux必学60个命令文件处理
- Linux 入门时必学60文件处理个命令
- Linux下各文件系统的比较
- Trac - 常见问题 - 导出的csv格式文件在Excel中处理unix时间戳
- shark和jbpm配置文件处理方式比较
- Linux必学60个命令文件处理
- Linux命令学习(八):比较文件内容的命令
- Linux必学60个命令文件处理(3)
- Linux文件处理命令
- Linux必学60个命令文件处理(2)
- Linux的时间与时钟中断处理
- Shark和jbpm的配置文件处理方式比较