我的构建文件夹中有很多文件,我正在尝试使用sort命令对它们进行排序。
文件的结构如下:
名称 - 版本 - ' v' - 建立日期
XXX-2.0.0-快照V2014-07-10_18-01-05.log
XXX-2.0.0-快照V2014-07-10_18-02-05.log
XXX-2.0.0-快照V2014-07-10_18-03-05.log
XXX-2.0.0-快照V2014-07-10_18-04-05.log
xxx-2.0.0-SNAPSHOT-V2014-07-10_18-05-05.log
如果我们假设版本字符串将保持3位数,那么对它们进行排序很容易。如果我在这里添加2.1或2.0.0.2等不同版本怎么办?我需要这样的结果:
XXX-2.1-快照V2014-07-10_18-05-05.log
XXX-2.0.2-快照V2014-07-10_18-04-05.log
XXX-2.0.0.2-快照V2014-07-10_18-03-05.log
XXX-2.0.0.1-快照V2014-07-10_18-02-05.log
xxx-2.0.-SNAPSHOT-V2014-07-10_18-01-05.log
答案 0 :(得分:8)
$ cat file
xxx-2.0.2-SNAPSHOT-V2014-07-10_18-04-05.log
xxx-2.0.0.2-SNAPSHOT-V2014-07-10_18-03-05.log
xxx-2.1-SNAPSHOT-V2014-07-10_18-05-05.log
xxx-2.0.0.1-SNAPSHOT-V2014-07-10_18-02-05.log
xxx-2.0.-SNAPSHOT-V2014-07-10_18-01-05.log
$ sort -V -r -t- -k2,2 < file
xxx-2.1-SNAPSHOT-V2014-07-10_18-05-05.log
xxx-2.0.2-SNAPSHOT-V2014-07-10_18-04-05.log
xxx-2.0.0.2-SNAPSHOT-V2014-07-10_18-03-05.log
xxx-2.0.0.1-SNAPSHOT-V2014-07-10_18-02-05.log
xxx-2.0.-SNAPSHOT-V2014-07-10_18-01-05.log
注意: sort
的某些实施不支持-V
选项......
说明: