首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于给定列的vim排序

基于给定列的vim排序
EN

Stack Overflow用户
提问于 2017-01-25 11:22:09
回答 3查看 2.6K关注 0票数 2

假设我的yaml文件中有这个部分

代码语言:javascript
复制
hdkkhj50599: 1000000  
504sdaaf54: 00000054  
pppppp: 00005464

我想根据冒号后面的值对这些行进行排序。

stackoverflow中提出的解决方案没有一个对我有用。

我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-25 11:40:07

Vim的内部:sort为您提供了所需的选项:n标志用于对十进制数进行排序(而不是按字母顺序排序,尽管在0填充的示例中并不重要),在开头跳过/.../模式;我们不贪婪地匹配第一个冒号和空格:

代码语言:javascript
复制
:sort n/.\{-}: /
票数 8
EN

Stack Overflow用户

发布于 2017-01-25 11:36:43

使用vim排序命令:

  • :sort /^.\{-}:/

您可以使用linux命令对它们进行排序:

  • :%!sort -t: -k2

有关更多信息,请参见:help sort

票数 2
EN

Stack Overflow用户

发布于 2017-01-25 11:29:32

如果您在linux上,可以在vim中尝试以下操作(将调用外部排序命令)

代码语言:javascript
复制
:%!sort -g

显然,您可以用您的行的定义替换%,例如:对于第5行到第10行,您可以这样做:

代码语言:javascript
复制
:5,10!sort -g
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41850336

复制
相关文章

相似问题

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