Vim Regex 重复行分组

2024-07-03

我有一个这样的日志文件:

12 adsflljl
12 hgfahld
12 ash;al
13 a;jfda
13 asldfj
15 ;aljdf
16 a;dlfj
19 adads
19 adfasf
20 aaaadsf

我想将它们“分组”,就像这两个之一一样:

12 adsfllj, 12 hgfahld, 12 ash;al
13 a;jfda, 13 asldfj
15 ;aljdf
16 a;dlfj
19 adads, 19 adfasf
20 aaaadsf

Or

12 adsfllj, hgfahld, ash;al
13 a;jfda, asldfj
15 ;aljdf
16 a;dlfj
19 adads, adfasf
20 aaaadsf

我完全被困住了。如果 vim 不这样做,我也有 sed、awk 和 bash。我只是不想写 bash 脚本,我想增加我的 regex-fu


在 Vim 中你可以使用:

:%s/\(\(\d\+\) .*\)\n\2/\1, \2/g 

这意味着:如果在新行后匹配一组数字,则删除换行符并放置逗号。如果你对他们不熟悉,\1 and \2是反向引用。

不幸的是,这一次只能合并两个事件,因此您必须运行多次才能实现目标。

编辑:一次性完成此操作的一种方法是循环并利用这样一个事实:一旦文件不再匹配,就会发出错误。虽然这个错误有点烦人,但我无法用一行代码做得更好:

:while 1 | :%s/\(\(\d\+\) .*\)\n\2/\1, \2/g | :endwhile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim Regex 重复行分组 的相关文章

  • 升级到 MacOS Sierra 后 tmux + vim 中的剪贴板故障

    昨天 我升级到 MacOS Sierra 它破坏了我的 tmux neovim 设置中的剪贴板功能 这是行为 我可以使用标准 ctrl c ctrl p 在系统 vim 之间复制 粘贴 当不在 tmux 会话中时 我可以在两个 VIM 实例
  • 以同样的方式根据编号对数组进行洗牌

    我正在运行一个测验制作网站 我希望以打乱的顺序向用户显示问题的答案 我试图avoid如果我要随机打乱答案 则存储向用户呈现答案的顺序 我想以可预测的方式打乱答案 这样我以后就可以用同样的方式重复随机播放 显示结果时 我认为我可以按某个数字对
  • symfony2 实体验证正则表达式 a-z A-Z 0-9

    symfony2 中是否有一种内置方法可以根据经典的 a z A Z 和 0 9 规则验证字符串 在我的例子中是用户名和另一个属性 我是否必须自己在正则表达式中编写它作为自定义验证器 如果是这样 请提示在哪里查看 你应该使用原生的正则表达式
  • 当我输入时 vim 更新完整的弹出窗口

    我正在尝试使用complete in vim这样它也可以读取该值 例如 从vim s complete 例子 inoremap
  • 根据连续项目的相似度对两侧项目的列表进行排序

    我正在寻找某种 多米诺排序 算法 该算法根据后续项目的 切线 边的相似性对两侧项目的列表进行排序 假设以下列表中的项目由 2 元组表示 gt gt gt items 0 72 0 12 0 11 0 67 0 74 0 65 0 32 0
  • Rails 3 中的自定义、高效、复杂排序

    我想知道如何在 Rails 中高效订购 我们都知道在Rails中可以通过以下方法进行简单的排序 Model order created at ASC limit 10 在本例中 我只提取前 10 个条目 如果我想添加非时间指定的排序 我可以
  • PHP Regex,从文本中提取所有自定义标签

    简而言之 我需要从一段文本中提取大括号内的所有字符串 如下所示 这是一个 tag 但这里也是 tag 2 然后又是 tag 3 这里但周围有一些垃圾 我想获得一个标签数组 tag 2 和 tag 3 标签只能包含单词字符 我试过这个 tag
  • 如何在 VIM 中按字母顺序对方法进行排序?

    class MyClass def zzz method body end def aaa method body end end 我如何让 VIM 将它们按字母顺序组织 使得 aaa 的定义先于 zzz 的定义 Well you can
  • 如何使用正则表达式匹配X和Y之间的数字?

    我想用 RegExp 匹配 X 和 Y 之间的数字 这可能吗 0 9 将匹配任何数字 我该如何匹配 110 和 2234 之间的数字 根据生成正则表达式以匹配任意数字范围 http code activestate com recipes
  • 如何转义字符串以在 Boost Regex 中使用

    我刚刚开始了解正则表达式 并且正在使用 Boost Regex 库 我需要使用包含特定 URL 的正则表达式 但它令人窒息 因为显然 URL 中存在为正则表达式保留的字符 需要转义 Boost 库中是否有任何函数或方法可以转义此类用途的字符
  • 使用 Moment(date) 元素对数组进行排序

    我有一个填充有 moment 数据库提供的日期 元素的数组 我试图对数组进行排序 使第一个元素是最旧的 最后一个元素是最新的 但没有成功 for let item of items dates push moment item create
  • powershell中排序后的文件大小是原始文件的两倍

    我有一个 powershell 脚本 它读取文件内容 对其进行排序并将输出写入新文件 以下是脚本 获取内容 inputFile 排序 gt sortedFile 文件中的输出已正确排序 但输出文件 sortedFile 比输入文件 inpu
  • sed 正则表达式非贪婪替换?

    我知道另一个问题 https stackoverflow com questions 1103149 non greedy regex matching in sed这非常相似 但由于某种原因我仍然遇到问题 我有一个 GC 日志 我正在尝试
  • 詹金斯排序方法行为不符合预期

    与詹金斯脚本控制台相比 尝试对列表进行排序时 我在詹金斯管道中得到了不同的结果 詹金斯版本 2 134 常规版本 2 4 11 Code def items 1 09 Aug 2018 11 13 2 11 Jul 2018 13 27 3
  • 使用linux bash替换文件中两个字符串之间的文本

    我有文件 acl txt 192 168 0 1 192 168 4 5 start exceptions 192 168 3 34 192 168 6 78 end exceptions 192 168 5 55 和另一个文件 例外 19
  • 如何按字母顺序对单键字典数组进行排序?

    我想对 Facebook 的 Graph API 返回的好友列表进行排序 排序后的结果需要是按好友名字的字母顺序排列 name Joe Smith id 6500000 name Andrew Smith id 82000 name Dor
  • 如何修复 emacs 中的“正则表达式匹配器中的堆栈溢出”

    我是 Emacs 的忠实粉丝 并且经常使用它 尤其是在编程和调试 使用 gud C C 时 最近我必须调试一个程序 相当简单 但需要计算大量数据 图论 但我遇到了一个相当烦人的问题 在程序逐步执行过程中 出现以下错误 error in pr
  • 获取索引处字符的 ANSI 颜色

    我已经开发了couleursNPM包 https github com IonicaBizau couleurs可以设置追加rgb方法String prototype gt console log Hello World rgb 255 0
  • awk 变量赋值语句需要解释

    好吧 言归正传 这是代码 我对代码进行了一些格式化以便于阅读 awk t 0 0 t 0 print 0 value of 0 is 0 0 t 0 print 0 value of 0 is 0 0 t 0 print 0 value o
  • 如何获取 PostgreSQL 中字符串中正则表达式匹配的位置?

    我有一个包含书名的表 我想选择标题与正则表达式匹配的书籍 并按标题中正则表达式匹配的位置对结果进行排序 单字搜索很容易 例如 TABLE book id title 1 The Sun 2 The Dead Sun 3 Sun Kissed

随机推荐

  • 如何更改输入文件浏览按钮的文本和颜色?

    我将输入文件设计为
  • 并行运行 Python 脚本并等待所有脚本完成后再执行更多并行脚本

    我需要并行执行 Python 脚本 因此我使用以下批处理文件 start python C myfolder 1 py start python C myfolder 2 py start python C myfolder 3 py 它工
  • UITableView背景图片

    我正在尝试设置一个 png 图像作为我的桌面视图的背景 使用以下代码一切都很好 但仅限于 iPhone 模拟器 如果我尝试在 iPhone 设备上运行该应用程序 表格视图的背景将保持白色 或透明 你认为这与我尝试设置背景颜色的方式有关吗 我
  • jScrollPane:边距问题

    jScrollPane 的边距问题似乎有点棘手 尝试在 jsp 内的每个元素和实际的 jsp 元素上设置 margin 0 我附上一张图片来向您展示该问题 问题是内容和实际滚动条之间的小黑色条纹 JSP 中类的 CSS width 100
  • 索引超出了数组 C# 的范围

    我有一个数组size 5 我向该数组添加了 5 个值 然后删除了这些值 现在我的数组只有一个值 如果我向该数组添加另一个值 它会显示错误Index was outside the bounds of the array 如果您有一个大小为
  • Android 在每个连接间隔接收多个 BLE 数据包

    我有一个设备通过 BLE GATT 特性将数据传输到我的 Android 4 4 2 设备在每个连接间隔发送多个 20 字节数据包 其中每个数据包都有一个序列号 假设设备在每个连接间隔发送 4 个数据包 如图所示 sq1 sq2 sq3 s
  • Gradle 任务不应自动执行

    我在 gradle 中定义一个任务 task releaseCandidate type Exec commandLine git checkout develop Increment version code in Manifest St
  • 跟踪修改的行并从 TClientDataSet 的 Delta 手动更新

    有没有什么方法可以手动跟踪对客户端数据集的增量所做的更改 并将更改手动更新到数据库 我动态创建了一个客户端数据集 无需提供程序 我就可以使用 tquery 加载它 现在用户将对 CD 中可用的数据执行一些插入更新和删除操作 在最后阶段 这些
  • Java 从多次调用中收集 CompletableFuture 的结果

    我必须运行多个外部调用操作 然后以列表的形式获取结果 我决定使用CompletableFutureapi 我准备的代码相当恶心 这个例子 public class Main public static void main String ar
  • 在 PHP 中创建 RESTful API?

    我开发了一个非常快速且简单的 PHP 应用程序 用于从 XML 文件读取分类广告并允许用户对其执行 CRUD 操作 这是一项家庭作业 我现在的任务是将此应用程序开发为 RESTful 服务 这位教授实际上似乎没有任何 RESTful 服务的
  • 已完成在 iPhone 6.1 模拟器上运行

    我正在使用 Xcode 版本 4 6 4H127 和 iPhone 6 1 模拟器 版本 6 0 369 2 为 Iphone 开发一个新应用程序 一开始一切都很棒 每次我按下 运行 按钮时 应用程序都会加载到模拟器中 并且我能够对其进行测
  • strstr() 函数

    我正在尝试编写一个程序 将用户输入的子字符串与字符串数组进行比较 include
  • 启用移动网站缩放

    我正在开发一个移动网站 但缩放效果在我的页面上不起作用 我在页面中使用了以下标签 我想知道 是否可以使用此标签获得缩放效果以及如何正确使用它 我还可以使用更多标签来实现此目的吗 我们的客户群主要使用 iPhone 在为 iPhone 用户开
  • 当跟踪值达到 bigint 限制时会发生什么变化?

    假设我已对数据库中的 200 个表启用了更改跟踪 由于变化跟踪数据库范围内的值变化 如果我达到 BIGINT 的最大值怎么办 为了达到bigint限制 在接下来的 292471 年里 您必须每秒更改数据库中的 100 万行 祝你好运
  • 添加字节时不同的编译器行为

    byte b1 3 byte b2 0 b2 byte b2 b1 line 3 System out println b2 b2 0 b2 b1 line 6 System out println b2 在第 3 行 如果我们不将结果类型
  • 在本地使用 Mercurial,仅与 Subversion 服务器一起使用

    我们在工作中使用 Subversion 服务器进行源代码控制 我在想 与其跟上我自己的分支 不如在我的工作站上运行 Mercurial 在本地提交 然后每当我完成正在开发的任何功能时就提交到 Subversion 主干 根据我对 DVCS
  • 将活动内存分页到磁盘的速率极高,但恒定内存使用率较低

    正如标题所述 我遇到了页面文件活动较高的问题 我正在开发一个处理大量图像的程序 它从硬盘驱动器加载这些图像 它从每张图像中生成一些数据 我将其保存在列表中 对于每 3600 张图像 我将列表保存到硬盘上 其大小约为 5 到 10 MB 它正
  • 在构建服务器上构建 .NET Core 1.0 RC2 应用程序

    我已将我的应用程序从 DNX ASP NET 5 RC1 更新到 ASP NET Core 1 0 RC2 在本地它构建并运行良好 在构建服务器上 我没有安装 Visual Studio 并且构建失败并显示 错误 MSB4019 找不到导入
  • React / Webpack - “模块解析失败:意外的令牌 - 您可能需要适当的加载器来处理此文件类型。”

    我正在尝试使用 Webpack 构建一个简单的 React 应用程序 但是在 Webpack 开发服务器运行时我收到以下错误 gt ERROR in client components home js Module parse failed
  • Vim Regex 重复行分组

    我有一个这样的日志文件 12 adsflljl 12 hgfahld 12 ash al 13 a jfda 13 asldfj 15 aljdf 16 a dlfj 19 adads 19 adfasf 20 aaaadsf 我想将它们