我想按日期和月份的升序显示/排序文件记录,或者如果有任何相等的数据值,它们应该按升序列在下一列中。
要排序的日期和月份:(当前场景)
文件内容:
我如何才能获得以下结果?
我尝试使用排序:(不起作用)
sort -n sortfile.txt
答案 0 :(得分:2)
您可以使用 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>