如何避免 grep 输出空文件

如何避免 grep 输出空文件

使用 grep 将日志中的关键字打印到输出文件

grep -i -n "应用程序" /app/log1.log > L1.log

现在,如果在日志中找到应用程序,它将给出结果。但如果没有结果,则会产生空的 l1 日志文件。

仅在有结果时才需要帮助创建 l1.log。

答案1

现在,如果在日志中找到应用程序,它将给出结果。但如果没有结果,则会产生空的 l1 日志文件。

正确。
使用“>”重定向运算符会预先删除目标文件。

仅在有结果时才需要帮助创建 l1.log。

用一个临时文件捕获任意数量的结果并使用 grep退出状态确定它是否成立任何事物。

TMP_LOG=/tmp/log.$$

grep -i -n "application" /app/log1.log > ${TMP_LOG}

if [ 0 -eq $? ] ; then
  # At least one Match found 
  cat ${TMP_LOG} > L1.log
  rm ${TMP_LOG} 
fi

相关内容