如何从第5列开始对以下文本进行排序:
123456789
000 123
013 122
122 013
123 000
我想得到这个:
123 000
122 013
013 122
000 123
123456789
答案 0 :(得分:6)
以下vim命令帮助了我:
:sort /\%5v/
除了一些简单的选项(比如u,i,!,n),排序可以接收 正则表达式/ {pattern} /。在这种情况下,有两种选择:
默认 - 未指定[r]标志 - 在这种情况下,对于每一行,跳过与{pattern}匹配的文本,因此 对匹配后的内容进行排序。
文档中的示例:
<强> A1。示例 - 从虚拟列5开始排序 我们的情况 - 对虚拟列5的文本进行排序(因此忽略了制表符和空格之间的区别):
:sort /.*\%5v/
<强> A2。示例 - 对第二个逗号分隔字段进行排序
逻辑是:跳过文本直到找到第一个逗号:
:sort /[^,]*,/
即。 排序是在 匹配{pattern}而不是如上所述跳过它 ...仅对每行的前三个字母进行排序:
:sort /\a\a\a/ r
请查看:help :sort了解更多详情/选项
答案 1 :(得分:0)
...以下也有效,基本上排序第5列
:sort /.*\%5v/