在Unix日志中使用特定单词和上面的两行保持一致
我有一个很长的日志文件,其中我只想保留带有单词“change”的行和这行上方的两行。如何在Unix中执行此操作?如果您可以将文件复制到Linux(除非您有cygwin或其他类似的实用程序)并使用grep,则会更容易(我发现)。 命令是:在Unix日志中使用特定单词和上面的两行保持一致,unix,grep,logfile,Unix,Grep,Logfile,我有一个很长的日志文件,其中我只想保留带有单词“change”的行和这行上方的两行。如何在Unix中执行此操作?如果您可以将文件复制到Linux(除非您有cygwin或其他类似的实用程序)并使用grep,则会更容易(我发现)。 命令是:grep-b2更改您的.log 这将查找有更改的行,并包括每个更改行之前的前两行 ===== 你可以在记事本++中获得所需的行,但我还没有找到一个简单的方法来做到这一点,但这是可能的。这完全取决于“长日志文件”的含义,因为这项工作可能需要一些时间: 首先,使用Se
grep-b2更改您的.log
这将查找有更改的行,并包括每个更改行之前的前两行
=====
你可以在记事本++中获得所需的行,但我还没有找到一个简单的方法来做到这一点,但这是可能的。这完全取决于“长日志文件”的含义,因为这项工作可能需要一些时间:
在Notepad++中可能还有其他一些人可能知道的方法,但我已经将这些步骤用于其他需要。F2有助于在书签之间跳转,因此这可能有助于加快进程。失败前的行数是否不同,还是有一个恒定的行数?如果是一个常量,比如总是10行,那么您可以简单地将值更改为-B选项,比如-b10。Git各不相同。还有可能吗?不幸的是,我不相信grep会“回顾”前面的几行。您可能需要简单地使用一个值来获取信息,即使某些行可能不相关。但是,如果这是一种替代方法,您可能可以更改grep搜索,以仅查找任务和失败的行?(假设中间行的条目中也没有“task”或“failed”)我后来还添加了另一个问题:如果我想改进下面的grep,并使用grep命令查找带有单词“failed”的行,并复制上面的所有行,直到它到达带有工作“task”的行(包括该行)?