2016-11-24 11 views
1

私は以下の出力を持っており、時間差を秒単位で取得する必要があります。時間差を秒単位で取得しますか?

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

一般的に月が、私は曜日と確かにその日のために別の値を得ることができ、今年も同じなので、我々はそれを逃れることができ、すべての場合で同じである必要があり、確かに違いがあることになります数秒で表示される可能性があります...

私はいくつかのawksを試してカット:しかし、私はまだ問題があります。

ありがとうございます! 何か助けに感謝します!

+0

「date -d」Wed 11月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を使用することはできませんあまりにも悪いが、私はこのワンライナーの誇りに思っていた:

のbashとzshのでテスト
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) 

on Linux Mint 17.3

関連する問題