如何在VIM编辑器中交换以“:”分隔的多列?(通缉令是2,3,4,1,(...))
例如:1:2:3:4:5:6 -> 2:3:4:1:5:6
编辑:我需要一次交换多行。
发布于 2016-06-20 02:34:47
这将会起作用:
:s/\v(.*):(.*):(.*):(.*):(.*):(.*)/\2:\3:\4:\1:\5:\6发布于 2016-06-20 15:59:53
如果你的系统上有awk可用,我会使用外部awk,它看起来比正则表达式的方式更简单:
%!awk -F: -v OFS=":" '{print $2,$3,$4,$1,$5,$6}'还有一个叫做"exchange“的插件,它可以让你更轻松。
发布于 2016-06-28 22:30:50
为了处理5个以上的字段,应该使用非贪婪的重复运算符(.{-}而不是.*):
:s/\v(.{-}):(.{-}):(.{-}):(.{-}):/\2:\3:\4:\1:/https://stackoverflow.com/questions/37908740
复制相似问题