为了确定我的安装是否有我应该注意的错误,我在文件上使用grep命令并使用tee编写文件,因为我需要提升权限。
sudo grep -inw ${LOGFOLDER}/$1.log -e "failed" | sudo tee -a ${LOGFOLDER}/$1.errors.log
sudo grep -inw ${LOGFOLDER}/$1.log -e "error" | sudo tee -a ${LOGFOLDER}/$1.errors.log
即使grep没有找到任何内容,也会创建文件。 有没有办法只有在grep找到匹配项时才能创建文件?
由于
答案 0 :(得分:0)
您可以将tee
替换为awk
,如果没有要写入的内容,则不会创建文件:
... | sudo awk "{print; print \$0 >> \"errors.log\";}"
但awk的这种功能很少使用。如果没有找到,我宁愿删除空的错误文件:
test -s error.log || rm -f error.log
顺便说一下,你可以同时找到多个单词:
grep -E 'failed|error' ...