查找没有搜索词的文件

时间:2013-03-12 15:02:19

标签: bash

我正在寻找一种快速搜索数千个日志文件的方法来查找有错误的日志文件。对我来说不幸的是,只有那些成功完成的用“完成作业”一词标记,而崩溃的那些将不包含这一行。

我将这些作业的确切名称存储为文件名。虽然执行以下操作很有用:

grep "Job Completed" * > completeJobs.txt

在我的日志目录中,我真的想知道不包含此行的作业的文件名。

上面的grep命令是否有补充来解决我的问题?

感谢阅读。

4 个答案:

答案 0 :(得分:1)

您需要选项-L

  

抑制正常输出;而是打印每个输入的名称                 文件,通常不打印任何输出。

grep -L 'Job Completed' * >../jobsNotCompleted

答案 1 :(得分:0)

您可以使用-v开关来反转grep搜索。

 grep -v "Job Completed" * > incompleteJobs.txt

答案 2 :(得分:-1)

只需尝试

grep -vl 'Job Completed' * > notCompletedJobs.txt

grep -v 'Job Completed' * > notCompletedJobs.txt

根据您的需要

注意

来自man grep

    -v, --invert-match
     

反转匹配感,选择不匹配的线条。 (-v由POSIX指定。)

   -l, --files-with-matches
     

抑制正常输出;而是打印通常打印输出的每个输入文件的名称。扫描将在第一场比赛中停止。 (-l由POSIX指定。)

答案 3 :(得分:-1)

检查man页面,您可以使用-v选项

反转匹配
grep -v "Job Completed" * > uncompletedJobs.txt