我有一个名称的列表,这些名称是乱序的。我怎样才能得到他们在正确的字母数字顺序,使用定制排序为字母部分?使用自定义排序顺序在Unix中对字母数字字符串进行排序
我的文件numbers.txt
:
alpha-1
beta-3
alpha-10
beta-5
alpha-5
beta-1
gamma-7
gamma-1
delta-10
delta-2
主要的一点是,我的脚本应该认识到,应该beta
之前打印alpha
,并beta
gamma
面前,gamma
delta
之前。
也就是说,单词应该根据它们代表的希腊字母中的字母顺序排序。
预期的顺序:
alpha-1
alpha-5
alpha-10
beta-1
beta-3
beta-5
gamma-1
gamma-7
delta-2
delta-10
PS:我试图与sort -n numbers.txt
,但它不适合我的需要。
[排序多个密钥对Unix排序(http://stackoverflow.com/questions/357560/sorting-multiple-keys-with-unix-sort) –
正如前面所说的可能的复制,主要点是有一个特定的顺序来尊重(alpha,beta,gamma和delta)。我认为'sort -k'不会解决这个问题。没有? – Daniel
我现在看到的更清楚你想做什么,不幸的是,用简单的'sort'并不是真的可以做到。有可能使用'awk',但最好的解决方案可能是创建一个程序(例如Python)来进行排序。 –