文字列を日付に変換し、AIXで日付/時刻の違いを取得します。

文字列を日付に変換し、AIXで日付/時刻の違いを取得します。

次のログファイルがあります。

2019.09.02 06:40:28 ---
2019.09.02 06:43:34 --- 
2019.09.02 06:43:41 ---

ファイルを読み、日付と時刻の違いを理解する必要があります。」2019.09.02 06:43:34" -そして - "2019.09.02 06:40:28「数時間、数分、数秒以内です。

while read date time message
do
    if [[ $date = $searched_date* ]] && [[ $message = *$searched_message* ]] ; then
      #how to convert $date and $time to unixtime?
    fi
done <"$LOG_FILE"

私はAIX 7を使用していますdate -d

答え1

ksh93はprintf入力形式を理解しているので、次のことができます。

end=$(printf '%(%s)T' "2019.09.02 06:43:34")
start=$(printf '%(%s)T' "2019.09.02 06:40:28")
printf '%d\n' "$((1567421014-1567420828))"

またはより一般的に:

seconds=$(printf '%(%s)T' "$date $time")

パーセクをhh:mm:ssに変換するには:

printf '%d hours, %d minutes, and %d seconds\n' "$((diff / 3600))" "$(( (diff % 3600) / 60))"  "$((diff % 60))"

関連情報