1

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

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

grep "Job Completed" * > completeJobs.txt

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

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

谢谢阅读。

4

4 回答 4

1

你想要选项-L

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

grep -L 'Job Completed' * >../jobsNotCompleted
于 2016-08-30T10:42:19.237 回答
0

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

 grep -v "Job Completed" * > incompleteJobs.txt
于 2013-03-12T15:08:43.673 回答
-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 指定。)

于 2013-03-12T15:05:22.000 回答
-1

检查man页面,您可以使用 -v 选项反转匹配

grep -v "Job Completed" * > uncompletedJobs.txt
于 2013-03-12T15:05:36.650 回答