使用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}}'