仅用一个实例替换同一行的多个实例?

李·勒穆尔

标题说的很对。基本上,我试图压缩一个巨大的日志文件。

Notepad ++和Regex(我知道一点)可以删除这些重复的行,但是问题是,我不想将它们全部删除。我希望保留一个实例,以保留日志消息的结构/顺序。

我GOOGLE了很多的答案,但我似乎只得到这样的结果这样问题是我不只是尝试替换或排除行。

在这一点上,我猜想Regex更有可能给出答案,但是我还处在那个阶段,我不知道可以使用哪些工具。

编辑:

我有成千上万条消息的示例,但只需要查看其中之一:(我看到了其中的很多,因为每个scsi设备都希望在自己的消息中加入芯片。我只需要看到它正在发生,而不是它正在发生给他们每个人)。

multipathd[4893]: 3600a098000badf6800005dfe5a8cd2cd: sdie - rdac checker reports path is down: ctlr is in startup sequence multipathd[4893]: 3600a098000badf6800005def5a8cd273: sdgq - rdac checker reports path is down: ctlr is in startup sequence multipathd[4893]: 3600a098000badf6800005df05a8cd27b: sdeq - rdac checker reports path is down: ctlr is in startup sequence multipathd[4893]: 3600a098000bae10c00005df55a8cd2ec: sdgw - rdac checker reports path is down: ctlr is in startup sequence multipathd[4893]: 3600a098000bae10c00005df05a8cd2c2: sdfk - rdac checker reports path is down: ctlr is in startup sequence multipathd[4893]: 3600a098000bae10c00005dec5a8cd2a3: sdgm - rdac checker reports path is down: ctlr is in startup sequence multipathd[4893]: 3600a098000badf6800005df35a8cd292: sdfo - rdac checker reports path is down: ctlr is in startup sequence

但我想看看

rdac checker reports path is down: ctlr is in startup sequence

这个

如果多个实例是连续的,则可以执行以下操作:

根据新要求更新:

  • Ctrl+H
  • 找什么: ^([^-]+- )(.+)(?:\R(?1)\2)+
  • 用。。。来代替: $2
  • 检查环绕
  • 检查正则表达式
  • 不要检查 . matches newline
  • Replace all

解释:

^           : beginning of line
  (         : start group 1
    [^-]+-  : 1 or more NOT dash,then a dash and a space
  )         : end group 1
  (         : start group 2
    .+      : 1 or more any character
  )         : end group 2
  (?:       : start non capture group 
    \R      : any kind of linebreak
    (?1)    : same pattern than group 1 (ie. "[^-]+- ")
    \2      : backreference to group 2
  )+        : end non capture group, must appears 1 or more times.

替代:

$2      : content of group 2

给定示例的结果:

rdac checker reports path is down: ctlr is in startup sequence

如果多个实例不是连续的,则最好使用自己喜欢的脚本语言编写一个脚本。

这是完成此工作的perl一线客:

perl -aE 'chomp;(undef,$x)=split(/-/,$_);next if exists $s{$x};$s{$x}=1;say$x' inputfile

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLAlchemy:将多个实例映射到同一行

来自分类Dev

Python 替换 - 将多个实例视为一个

来自分类Dev

列的多个实例排成一行

来自分类Dev

用grep重复整行匹配同一行上的多个实例

来自分类Dev

Web服务-一个或多个实例

来自分类Dev

创建一个视图的多个实例

来自分类Dev

一个JFrame的多个实例

来自分类Dev

创建一个视图的多个实例

来自分类Dev

一个模块的多个实例

来自分类Dev

同一EnvironmentObject的多个实例

来自分类Dev

在多个实例中检查某些属性值,并在python中从同一实例打印另一个属性

来自分类Dev

创建一个静态全局实例的多个实例/副本

来自分类Dev

使用grep从同一行的选项列表中返回两个实例

来自分类Dev

在同一行上键入实例化和声明

来自分类Dev

替换文件每一行中单词的第二个实例

来自分类Dev

替换文件每一行中单词的第二个实例

来自分类Dev

我想用同一行中找到的另一个模式替换一个模式

来自分类Dev

如何在同一个.js文件中创建多个Vue实例?

来自分类Dev

jQuery-分别对待同一个类的多个实例?

来自分类Dev

让我们为同一个域,多个实例加密SSL证书

来自分类Dev

如何将同一个bean实例注入多个bean

来自分类Dev

无法使用Guice和Vertx将同一个实例注入多个顶点

来自分类Dev

如何通过同一个插件拥有多个播放器实例

来自分类Dev

管理同一个视图控制器的多个实例

来自分类Dev

在c#中动态创建同一个类的多个对象实例

来自分类Dev

c# Regex.Split 返回同一个词的多个实例

来自分类Dev

区分同一个类的多个实例的日志信息

来自分类Dev

运行同一个 springboot 应用程序的多个实例

来自分类Dev

如何通过Excel查找和替换同一行中的两个多个值?

Related 相关文章

热门标签

归档