2 行間の時間差を計算します。

2 行間の時間差を計算します。

以下のようにファイルのタイムスタンプをgrepします。今、時差を計算する必要があります。

ファイルデータ:

18:29:10
04:56:50

次のコマンドを実行してみましたが、出力は否定的です。

awk -F":" 'FNR==1{split($0,a,":");sec1=a[1]*3600+a[2]*60+a[3]} FNR==2{split($0,b,":");sec2=b[1]*3600+b[2]*60+b[3];val=sec2-sec1;ho=int(val/3600);val=val%3600;mi=sprintf("%02d",(val/60));val=val%60;;print ho":"mi":"val}' file.txt

出力は次のとおりです。-13:-32:-10

私が望む出力は次のとおりです。 10:27:40

ベストアンサー1

GNU日付を使用してください。

string1="18:29:10"
string2="04:56:50"
StartDate=$(date -u -d "$string1" +"%s")
FinalDate=$(date -u -d "$string2" +"%s")
date -u -d "0 $FinalDate sec - $StartDate sec" +"%H:%M:%S"

出力:

10:27:40

クレジット取引:https://stackoverflow.com/a/27442175/3776858

おすすめ記事