次のログファイルがあります。
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))"