首页 > 解决方案 > 壳牌 | 按升序排列日期和月份

问题描述

我想按日期和月份的升序显示/排序文件记录,或者如果有任何相等的数据值,它们应该按升序在下一列中列出。

要排序的日期和月份:(当前方案)

文件内容

我将如何实现以下结果?

我尝试使用排序:(不工作) sort -n sortfile.txt

标签: linuxshellsorting

解决方案


您可以使用sort,但您需要指定字段分隔符-t '-',以便字段分隔'-',然后指定keydef以在第 5 个字段上排序,从第 4 个字符开始,然后再次使用第一个字符,最后在字段上进行版本排序6 如果其他条件相同。那将是:

sort -t '-' -k5.4n -k5.1n -k6V  contents

在每个 keydef 中提供完整的开始和停止字符可以如下完成:

sort -t '-' -k5.4n,5.5 -k5.1n,5.2 -k6V  contents

(虽然对于这个数据,输出没有改变)

示例使用/输出

$ sort -t '-' -k5.4n -k5.1n -k6V  contents
ver>0.1.1-XYZ-LOK-BR-19.01-v1.0-5-8a8d7dd/ver>
ver>0.1.1-DXD-UIJ-BR-02.02-v1.0-4-9o2k4wk/ver>
ver>0.1.1-ABC-XYA-BR-03.02-v1.0-1-4d4f3dd/ver>

推荐阅读