使用AWK 将字符串转换为时间 求时间差

如有两个时间是字符串类型的 如: 20170316140104 20170316140204 需要计算两个时间的时间差

1、使用substr 截取字符串 共mktime函数使用

2、使用strftime 计算出时间

3、两个时间相减

 

在我需要计算时差的文件中 第7字段表示发送时间  第8字段表示接收响应的时间  所以取值的时候 使用 $7 $8来取值  字段的分隔符为“|”

脚本如下:

cat * | awk -F"|" '{y1= substr($7,1,4); m1=substr($7,5,2); d1=substr($7,7,2);h1=substr($7,9,2);M1=substr($7,11,2);s1=substr($7,13,2);y2= substr($8,1,4); m2=substr($8,5,2); d2=substr($8,7,2);h2=substr($8,9,2);M2=substr($8,11,2);s2=substr($8,13,2); time1 = strftime("%s",mktime(y1" "m1" "d1" "h1" "M1" "s1));time2 = strftime("%s",mktime(y2" "m2" "d2" "h2" "M2" "s2));if (time2-time1>22){print $7,$8}}'

转载于:https://www.cnblogs.com/xavierlee/p/6559274.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值