按最后第二个字母排序的Unix命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按最后第二个字母排序的Unix命令相关的知识,希望对你有一定的参考价值。

我有一个包含十六进制颜色代码的文本文件,但我想按它们的字母值排序。我如何使用-k排序选项。基本上,我想让带有 ff 字母值的代码先排序。

颜色代码。

#b293a6ff
#ead58fff
#a69d36ff
#067806ff
#7f0bf712
#f8b366ff
#8946d744
#c927d4ff
#3e568bff
#3e1ce1ff
#11570a00

命令:

sort -k8,9 colours.txt

预期输出:

#b293a6ff
#ead58fff
#a69d36ff
#067806ff
#f8b366ff
#c927d4ff
#3e568bff
#3e1ce1ff
#11570a00
#7f0bf712
#8946d744
答案

使用 GNU sort:

不完全是你预期的输出(见最后三个条目),但按最后两个字符的反向顺序排序,使用的是 --stable 以使条目具有相同的值 (ff)按原顺序排列。

$ sort --stable -rk1.8 colours.txt
#b293a6ff
#ead58fff
#a69d36ff
#067806ff
#f8b366ff
#c927d4ff
#3e568bff
#3e1ce1ff
#8946d744
#7f0bf712
#11570a00

以上是关于按最后第二个字母排序的Unix命令的主要内容,如果未能解决你的问题,请参考以下文章

orderByChild() 如果值相同,如何按第二个变量排序?

如何按第一个值和第二个值对 pair<int, char> 的向量进行排序? [复制]

片段(Java) | 机试题+算法思路+考点+代码解析 2023

排序算法之冒泡排序

JAVA通过数组按首字母排序怎么做?

wps表格里的文字怎么让它按字母排列?