我有一个文件,其中某些行标记,其中包含多个相对重要的管道。 你会如何根据重要性和字母顺序在vim中对这些行进行排序?
输入
cli
bar ||
bar
foo |||
haz ||
输出
foo |||
bar ||
haz ||
bar
cli
请注意, bar 和 haz 按管道数排序,但也按字母顺序排序。 谢谢!
答案 0 :(得分:4)
使用vim内置:sort
,您可以执行以下操作:
:sort! r /|*$/
如果您想按重要性和字母排序,您可以:
:sort|sort! r/|*$/
注意您的输出并未遵循您所描述的规则。
答案 1 :(得分:1)
如果您可以访问外部linux sort
命令,则可以在vim中运行:
:%!sort -k2r -k1,1
这会以相反的顺序对第二列进行排序,如果第二列中有重复项,则按第一列按升序排序。