首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VIM:交换用冒号分隔的列

VIM:交换用冒号分隔的列
EN

Stack Overflow用户
提问于 2016-06-19 23:15:23
回答 3查看 1.2K关注 0票数 2

如何在VIM编辑器中交换以“:”分隔的多列?(通缉令是2,3,4,1,(...))

例如:1:2:3:4:5:6 -> 2:3:4:1:5:6

编辑:我需要一次交换多行。

EN

回答 3

Stack Overflow用户

发布于 2016-06-20 02:34:47

这将会起作用:

代码语言:javascript
复制
:s/\v(.*):(.*):(.*):(.*):(.*):(.*)/\2:\3:\4:\1:\5:\6
票数 2
EN

Stack Overflow用户

发布于 2016-06-20 15:59:53

如果你的系统上有awk可用,我会使用外部awk,它看起来比正则表达式的方式更简单:

代码语言:javascript
复制
%!awk -F: -v OFS=":" '{print $2,$3,$4,$1,$5,$6}'

还有一个叫做"exchange“的插件,它可以让你更轻松。

票数 2
EN

Stack Overflow用户

发布于 2016-06-28 22:30:50

为了处理5个以上的字段,应该使用非贪婪的重复运算符(.{-}而不是.*):

代码语言:javascript
复制
:s/\v(.{-}):(.{-}):(.{-}):(.{-}):/\2:\3:\4:\1:/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37908740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档