在 Unix 日志中与特定单词和上面两行保持一致
Keep line with specific word and two lines above in Unix log
我有一个很长的日志文件,我只想保留带有单词 'change' 的行和该行上方的两行。我怎样才能在 Unix 中做到这一点?
如果您可以将文件复制到 Linux(除非您有 cygwin 或其他类似的实用程序)并使用 grep,那会更容易(我发现)。
命令将是:grep -B 2 change your.log
这将找到有更改的行,并在每个更改行之前包括前两行。
=====
您可以在 Notepad++ 中获得所需的行,但我(还)没有找到一种简单的方法来做同样的事情,但这是可能的。这完全取决于您所说的 "long log file" 是什么意思,因为这项工作可能需要一些时间:
- 首先,使用搜索 => 标记...
- 输入 'change' 搜索词
- 选中 'Bookmark Line' 复选框
- 单击 'Mark All' 按钮。
...此时,所有具有 'change' 的行将在左侧显示一个书签。
- 移动到文件顶部,如果还没有的话
- 按 F2 跳转到下一个书签
在左边,点击上面两行也显示为书签(使它们与更改行具有相同的书签指示)
对所有更改行重复步骤 6 和 7,直到覆盖所有 "triplets" 书签(更改行和前两行)
所有书签设置完成后,执行:搜索=>书签=>删除未标记的行
有些人可能知道 Notepad++ 中的其他方法,但我已将这些步骤用于其他需要。 F2 有助于在书签之间跳转,因此这可能有助于加快该过程。
我有一个很长的日志文件,我只想保留带有单词 'change' 的行和该行上方的两行。我怎样才能在 Unix 中做到这一点?
如果您可以将文件复制到 Linux(除非您有 cygwin 或其他类似的实用程序)并使用 grep,那会更容易(我发现)。
命令将是:grep -B 2 change your.log
这将找到有更改的行,并在每个更改行之前包括前两行。
=====
您可以在 Notepad++ 中获得所需的行,但我(还)没有找到一种简单的方法来做同样的事情,但这是可能的。这完全取决于您所说的 "long log file" 是什么意思,因为这项工作可能需要一些时间:
- 首先,使用搜索 => 标记...
- 输入 'change' 搜索词
- 选中 'Bookmark Line' 复选框
- 单击 'Mark All' 按钮。
...此时,所有具有 'change' 的行将在左侧显示一个书签。
- 移动到文件顶部,如果还没有的话
- 按 F2 跳转到下一个书签
在左边,点击上面两行也显示为书签(使它们与更改行具有相同的书签指示)
对所有更改行重复步骤 6 和 7,直到覆盖所有 "triplets" 书签(更改行和前两行)
所有书签设置完成后,执行:搜索=>书签=>删除未标记的行
有些人可能知道 Notepad++ 中的其他方法,但我已将这些步骤用于其他需要。 F2 有助于在书签之间跳转,因此这可能有助于加快该过程。