【发布时间】:2013-03-12 15:02:18
【问题描述】:
我正在寻找一种快速的方法来搜索数千个日志文件以找到有错误的文件。对我来说不幸的是,只有成功完成的会标有“作业已完成”一词,而崩溃的不会包含这一行。
我将这些作业的确切名称存储为文件名。虽然执行以下操作很有用:
grep "Job Completed" * > completeJobs.txt
在我的日志目录中,我真的很想知道不包含这一行的作业的文件名。
上面的 grep 命令有补充来解决我的问题吗?
感谢阅读。
【问题讨论】:
-
建议您在寻求帮助之前阅读命令的手册页 - 这确实是最好的方法
-
我可能没有说清楚的是,这些日志文件的行中包含“作业已完成”以外的内容。如果我只使用 -vl 命令,我仍然会抓取带有“作业已完成”行以及其他文本行的文件。反而。我已经完成了以下操作以获得完整的解决方案:
grep -l "Job Completed" * > ../temp1grep -vl "Job Completed" * > ../temp2cat temp1 temp2 | sort | uniq -u > jobsNotCompleted而且,我知道第二个 grep 函数可以很好地替换为 ls 命令,但为了获得更清晰的解决方案,我将其写为这样的。 -
@user1575175 您可以将其发布为您自己的问题的答案,并将其标记为正确吗?这是一个很好的答案!
标签: bash