2つのファイルデータ間の日付/時刻差の計算

2つのファイルデータ間の日付/時刻差の計算

File1とFile2という2つのファイルがあります。 File1のデータは次のとおりです。

"Start Date & Time" = 1804030000

そしてFile2のデータは次のとおりです。

"End Date & Time" = 1804030400

両方のファイルには同じ数の行(ほぼ300,000行)があります。これで、終了日時(ファイル2) - 開始日時(ファイル1)を減算して視差を計算し、結果を新しいファイルに1行ずつ保存しようとしています。

両方のファイルの日付と時刻の形式は (yymmddhhmm) です。

ベストアンサー1

小さな実行可能ファイルbusybox:-Dオプションを使用して日付形式を解析できます。
ファイル日付の形式は次のとおりです。%y%m%d%H%M

$ busybox date -uD %y%m%d%H%M -d "1804040400"
Wed Apr  4 04:00:00 UTC 2018

awkでこれを使用してください:

$ awk 'BEGIN{  a="busybox date -uD %y%m%d%H%M +%s -d " }
         { b=a $6  ; b | getline sd ; close(b)
           b=a $NF ; b | getline ed ; close(b)
           print(ed,sd,ed-sd)
         }' < <(paste infile[12])

1522814400 1522713600 100800

注:この-uオプションを使用すると、一部のDSTやローカルの影響を回避できます。ほとんどの場合、2 つの日付コマンドが同じ環境 TZ で実行されるため、最終差は変更されません。

おすすめ記事