我有一堆日志,我不想单独查看每个日志,而是想运行cat cluster-2010*.log | grep error
,但问题是,即使它返回了我想要的内容,我也不知道哪个 .log文件包含上一个命令显示的错误。
我该如何解决这个问题?
答案1
grep
如果您给它文件名而不是向其提供内容,它会告诉您自己:
grep error cluster-2010*.log
答案2
这是一个猫的无用使用。只需执行以下操作:
grep error cluster-2010*.log
您将得到与此类似的输出:
bil@daemon:foo %>grep error cluster-2010*.log
cluster-20105.log:error
cluster-20107.log:error
答案3
如果您不想要一堆输出,例如,如果我收到 auth.log 失败并且它输出几百行,您可以使用:
grep -l error cluster-2010*.log
如果结果为 false(不包含该值),则不会打印任何内容;如果包含该值,则不会打印文件名。
如果你想找出你要查找的单词所在的行号,你可以使用:
grep -n error cluster-2010*.log