在 cat 命令中传递变量以 grep 特定传递的变量值

在 cat 命令中传递变量以 grep 特定传递的变量值

我正在尝试 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 分钟。

相关内容