2016-11-30 154 views
1

從使用gawk或Linux上的類似命令的命令行,我想將12小時時鐘日期/時間轉換爲24小時時鐘以便進行排序。從12小時轉換爲24小時排序awk

的樣本數據是

11/29/2016,9:42:21 AM 
11/29/2016,12:42:26 PM 
11/29/2016,12:42:27 PM 
11/29/2016,12:42:50 PM 

我使用事件日誌

cat event_log.csv |gawk -F \, {'print $2'} 

感謝

回答

-1

解決得到儘可能這一點,

cat x.log | gawk '{cmd="date -d "$1 $2" +%H:%M:%S"; cmd | getline val; close(cmd); printf("%s\n",val) ; }' 
+0

甚至還沒有接近一個合理的解決方案,因爲它是越野車,即使你固定它到你提供工作效率極低輸入數據。另外谷歌UUOC。如果你用'awk'來標記你的問題而不是(或者除了)''gawk'',很多人都會看到它,你會在幾分鐘內得到正確的解決方案。下次... –

+1

感謝您的有益反饋 – bibble235

0

太糟糕了,你沒」包括任何值在您的樣品輸入端,實際上是否由此計算的影響,但無論如何,這裏是你如何做到這一點:

$ awk -F'[ ,:]' '$5=="PM" && $2<12{$2+=12} {printf "%s,%02d:%s:%s\n", $1, $2, $3, $4}' file 
11/29/2016,09:42:21 
11/29/2016,12:42:26 
11/29/2016,12:42:27 
11/29/2016,12:42:50 
相關問題