我有一个包含以下数据的日志文件
Apr 10 16 02:07:20 Data 1
Apr 11 16 02:07:20 Data 1
May 10 16 04:11:09 Data 2
May 12 16 04:11:09 Data 2
我必须检查输入的数据是否存在于我的文件中。如果没有,则应显示错误。我使用以下代码。
if [ ! -d "$StartTime" ]
then
{
echo " $StartTime does not exists in the file"
exit
}
fi
其中"$StartTime"
存储Apr 10 16 02:07:20
日期。我应该在哪里指定logfilename?
答案 0 :(得分:2)
您可以按如下方式编写:
StartTime="02:08:20"
if [ `grep -c "$StartTime" *` -eq 0 ]
then echo " $StartTime does not exist in the files"
fi
grep
匹配搜索字符串,-c
匹配匹配次数if
匹配的行数-eq
也就是等于0,打印不匹配答案 1 :(得分:1)
无需计算条目数。 grep
将失败(例如,如果找不到搜索字符串,则返回退出状态1
:
StartTime="02:07:20"
if grep -q "${StartTime}" test.log;then
echo " $StartTime does not exist in the files"
exit 1
fi