2016-11-24 95 views
1

我有下面的輸出,我需要在幾秒鐘內得到時間差。在幾秒鐘內獲得時差?

------------------------------ 
Wed Nov 23 15:09:20 2016 
------------------------------ 
Wed Nov 23 15:27:47 2016 
------------------------------ 

一般一個月應該在所有情況下都一樣的,所以我們可以逃避它,同爲一年,我可以爲一週中的一天,爲確保當天得到不同的值,可以肯定的差別會在幾秒鐘和幾分鐘內,並可能在幾小時內...

我嘗試了一些awks和切::但我仍然有一個問題。

在此先感謝! 任何幫助表示讚賞!

+0

使用'date -d「Wed Nov 23 15:09:20 2016」+%s'將日期轉換爲紀元秒。然後以秒爲單位計算差值。 –

+0

問題是它的aix盒子不是linux,我沒有-d標誌 – mshafey

+0

你的aix盒子上有perl/python/ruby​​嗎? –

回答

0

您可以按如下方式使用GNU date

$ date1=$(date -d"Wed Nov 23 15:09:20 2016" +%s) 
$ date2=$(date -d"Wed Nov 23 15:27:47 2016" +%s) 
$ printf "difference in seconds: %s\n" "$((date2 - date1))" 
1107 
+0

問題是它的aix盒不是linux,我沒有-d標誌 – mshafey

+0

你可以看看你是否可以在AIX上使用'gawk'? '哪個gawk'? – Inian

+0

恐怕gawk不在那裏......我想解決方案將是平面命令切割sed awk ..等等...... – mshafey

0

我的第一個perl腳本永遠

# extract two dates and calculate difference in s 
# http://stackoverflow.com/questions/40781429/get-the-time-difference-in-seconds/ 
# 
# cat time_diff.txt | grep -e "20[0-2][0-9]" | perl time_difference.pl 

use Date::Parse; 

$date_str1 = <STDIN>; 
$date_str2 = <STDIN>; 
$date1 = str2time($date_str1); 
$date2 = str2time($date_str2); 

print $date2-$date1; 
print "\n"; 

太糟糕了,你不能使用日期-d,我是這樣的一行感到驕傲:

cat time_diff.txt | grep -e "20[0-2][0-9]" | xargs -i date -d{} +%s | (read -d "\n" t1 t2; echo $t2-$t1 | bc) 

測試使用bash和的zsh在Linux上Mint 17.3