コマンド応答から日付を選択

コマンド応答から日付を選択

次のコマンド応答があります。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXX  |   XXX | Thu Oct 18 03:32:00 UTC 2018

XXX  |   XXX | Thu Oct 18 03:32:00 UTC 2018

各文字セットとパイプの間には多くのタブスペースがあります。目標は、応答から日付を選択して現在の時刻と比較し、違いを見つけて300秒より古いことを確認することです。初めてシェルスクリプトを作成するのにどのように機能するのかわかりません。

私は全体の線を得るためにgrepを使ってみました。文字間のスペースを無視する方法はありますか?この日付形式を通常の日付形式に変換するにはどうすればよいですか?

ベストアンサー1

#!/bin/bash
grep 'UTC\|EDT\|EST' file | cut -d' ' -f 8 | while IFS= read line; do

now=$(date | cut -d' ' -f 4)

time_now=$(date -u -d "$now" +"%s")   #seconds
time_line=$(date -u -d "$line" +"%s") #seconds

difference=$(echo $((time_now - time_line)))

  if [ $difference -lt 300 ] 

     then
       echo "Time difference is less than 300 seconds"

     else 
       echo "Time difference is more than 300 seconds"
   fi

done

おすすめ記事