如有兩個時間是字符串類型的 如: 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}}'