我正在寻找一种快速搜索数千个日志文件的方法来查找有错误的日志文件。对我来说不幸的是,只有那些成功完成的用“完成作业”一词标记,而崩溃的那些将不包含这一行。
我将这些作业的确切名称存储为文件名。虽然执行以下操作很有用:
grep "Job Completed" * > completeJobs.txt
在我的日志目录中,我真的想知道不包含此行的作业的文件名。
上面的grep命令是否有补充来解决我的问题?
感谢阅读。
答案 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