使用Vim做跨行文本做替换

直接说场景, 有一个文件, 数据为采用@分隔的两列,第一列是线路名称,第二列是线路端点名称. 现要将相同线路的端点名称输出:

原始信息:

动态连接线.1017 @ 过负荷保护
动态连接线.1017 @ 跳中压侧断路器
动态连接线.1016 @ 过负荷保护
动态连接线.1016 @ 跳高压2侧断路器
动态连接线.1015 @ 过负荷保护
动态连接线.1015 @ 跳高压1侧断路器
动态连接线.1014 @ 过负荷保护
动态连接线.1014 @ 跳低压侧断路器
动态连接线.1013 @ 过负荷保护
动态连接线.1013 @ 跳中压侧断路器
动态连接线.1012 @ 跳高压2侧断路器
动态连接线.1011 @ 过负荷保护
动态连接线.1011 @ 跳高压1侧断路器
动态连接线.1010 @ 零序过流
动态连接线.1010 @ 跳低压侧断路器


目标信息:

动态连接线.1017 @ 过负荷保护 @ 跳中压侧断路器
动态连接线.1016 @ 过负荷保护 @ 跳高压2侧断路器
动态连接线.1015 @ 过负荷保护 @ 跳高压1侧断路器
动态连接线.1014 @ 过负荷保护 @ 跳低压侧断路器
动态连接线.1013 @ 过负荷保护 @ 跳中压侧断路器
动态连接线.1012 @ 跳高压2侧断路器
动态连接线.1011 @ 过负荷保护 @ 跳高压1侧断路器
动态连接线.1010 @ 零序过流 @ 跳低压侧断路器


借用vim跨行替换可采用如下方式实现:

:g/^/s/.∗ @ .∗\n\1/\2/


应注意到有一个线路在原始数据中只有一个端点.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值