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 で実行されるため、最終差は変更されません。