我有以下数据
foo-a12a11
foo-a12a2
foo-a12b12
foo-a12b21
foo-a13a10
foo-a13a1
foo-a13a9
IIII122344 # this indicates the order in which I want to consider the fields (I=ignore)
我希望首先按单个字母排序,然后按第一个数字排序,然后按字母排序,最后按尾随数字按数字顺序排序。
通过阅读 sort 的手册页,我认为这已经足够了sort --key=1.1db,2.8n
。但是这返回了sort: options '-dn' are incompatible
...我觉得这很奇怪,因为我认为它们应该被视为单独的键。尝试切换第二个键以进行排序d
,但按字典顺序对尾随数字进行排序(即 10 放在 9 之前)
有人知道我如何实现我想要的排序(如下所示,手动生成)?:
foo-a12a2
foo-a12a11
foo-a12b12
foo-a12b21
foo-a13a1
foo-a13a9
foo-a13a10
目前在所有情况下都是foo-a
相同的,因此我选择忽略它以进行排序。
对于如图所示的固定宽度部分(假设没有空白字符),您可以尝试: