ログ内の特定のタイムスタンプ+希望の文字列をgrepしようとしています。以下のコードをご覧ください。
month=`echo $(date) | cut -d ' ' -f 2`
zero=0
year=`echo $(date) | cut -d ' ' -f 6`
date1=$zero$(echo $(date) | cut -d ' ' -f 3)
currenttiemstamp=`echo $(date) | cut -d ' ' -f 4`
currenthr=`echo $(date) | cut -d ' ' -f 4 |cut -d ':' -f 1`
currentmin=`echo $(date) | cut -d ' ' -f 4 |cut -d ' ' -f 2`
currentmin1=`expr $(echo $(date) | cut -d ' ' -f 4 |cut -d ':' -f 2) - 6`
x="Error Message"
**Assigning timestamp string to a variable
stringtocheck=$date1" "$month" "$year" "$currenthr":"$currentmin1**
#printing timestamp string
echo "$stringtocheck"
cd /log/
**cat xyz.log |grep "^ "$stringtocheck""|grep "^ "$x""**
上記のcatコマンドでも一重引用符を使用してみましたが、結果は出ませんでした。
私がここで何かをしている場合は教えてください。私はシェルスクリプトの世界に完全に慣れていません。
答え1
回答で質問を完了します。
grep "$(date --date="now - 1 minute" +"%d %b %Y %H:%M")" xyz.log | grep "Error message"
同様に、ループを使用して過去5分を確認できます。