sorting - 如何在 Unix 中对字母数字字符串进行排序?

标签 sorting vim editor

我有一个表名列表,它们的顺序是乱的。我怎样才能让它们按照正确的逻辑顺序排列?

$ cat list.txt

TAB1
TAB13
TAB11
TAB19
TAB2
TAB3
TAB16
TAB17
TAB18
TAB9
TAB10
TAB8
TAB12
TAB20

$ cat list.txt | sort -n

TAB1
TAB10
TAB11
TAB12
TAB13
TAB16
TAB17
TAB18
TAB19
TAB2
TAB20
TAB3
TAB8
TAB9

预期订单:

TAB1
TAB2
TAB3
TAB8
TAB9
TAB10
TAB11
TAB12
TAB13
TAB16
TAB17
TAB18
TAB19
TAB20

任何 vim 快捷方式也可以,我不一定需要单独的实用程序。

最佳答案

您始终可以使用参数 -V 执行排序来对字母数字字符串进行排序..

$ sort -V inputfile > outputfile

$ cat inputfile  
TAB1  
TAB13  
TAB11  
TAB19  
TAB2  
TAB3  
TAB16  
TAB17  
TAB18  
TAB9  
TAB10  
TAB8  
TAB12  
TAB20  

$ cat outputfile  
TAB1  
TAB2  
TAB3  
TAB8  
TAB9  
TAB10  
TAB11  
TAB12  
TAB13  
TAB16  
TAB17  
TAB18  
TAB19  
TAB20  

关于sorting - 如何在 Unix 中对字母数字字符串进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4279530/

相关文章:

sorting - 在 Drupal 中按自定义字段排序 7 View 3

xml - 是否有类似于 XMLSpy 的具有 GridView 的 XML 编辑器?

c# - 如何在gridview中实现排序功能?

python - 按字母顺序对二维列表进行排序?

language-agnostic - C#数据结构算法

colors - 插入模式下 Vim CursorLine 颜色变化

VIM在插入模式下导航

vim - 用于 vim 的 HTML5 格式化程序/ pretty-print ?

vim - VIM 是否出于特定目的出现在发行版中,例如 Eclipse 或专门的 Linux 发行版?

python - 有没有像共享的谷歌文档一样实时与多个用户在线编写代码的系统?