我正在尝试 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 命令中,我尝试使用单引号,它也没有显示结果
如果我在这里做对了,请告诉我,我在 shell 脚本世界中是全新的。
答案1
我只是用答案来结束我的问题
grep "$(date --date="now - 1 minute" +"%d %b %Y %H:%M")" xyz.log | grep "Error message"
同样,我可以使用循环检查最后 5 分钟。