【发布时间】:2017-03-15 00:30:47
【问题描述】:
我需要做这个关于 vim 中的正则表达式和文本操作的练习。
所以我有这个关于历史上得分最高的足球运动员的文件,其中有 50 个条目如下所示:
1 Cristiano Ronaldo Portugal 88 121 0.73 03 Manchester United Real Madrid
字段之间的空格是制表符 (\t)
每个字段对应不同的类别:等等... 最后一个字段包含玩家参加过的一个或多个俱乐部。(因此不是固定数量的俱乐部)
问题:用“;”替换所有选项卡,除了最后一个字段,俱乐部需要用“,”分隔。
所以我想:我只是将它们全部替换为逗号,然后将前 7 个逗号替换为分号。但是,你是怎么做的?一切 - 从正则表达式到 vim 命令 - 都是允许的。
第一部分很简单::2,$s/\t/,/g
但第二部分,我似乎无法弄清楚。
任何帮助将不胜感激。
谢谢,芝诺
【问题讨论】:
-
它必须是正则表达式解决方案,还是使用其他 vim 功能(全局命令、普通命令、宏等)的某种组合可以?
-
是的,命令是允许的,我只是“假设”它会用正则表达式完成,我会相应地更改标题
标签: regex vim vi text-manipulation