【发布时间】:2021-08-24 23:21:17
【问题描述】:
我浏览了 StackExchange 网站,但没有找到任何我想要的东西。以下是 grep 的两个用例:
- 在比赛之前/之后打印项目
- 打印某个匹配项
我正在尝试解析一个日志文件,并且我想返回日志中的最后一个错误,可以预见的是,该错误位于文件的末尾。但是,有时错误是多行。 “如何 grep 最后一场比赛”的答案都涉及尾部或头部,并且只适用于单行。
就我而言,我只想返回文件中的所有内容,从最后一个匹配项开始。通常,这最多不会超过 10-15 行,所以 grep -A 15 可以解决问题。但是,我仍然只需要获取其中的最后一个,因此仅此一项并不能产生正确的输出。
天真的方法是使用两部分匹配,首先获取最后一个匹配是什么,然后是之后的所有内容。这对我不起作用,因为我不能保证最后一场比赛是唯一的。
是否有可能用 grep 以某种方式做到这一点,或者有更好的工具吗?
【问题讨论】:
标签: grep string-matching