以数字形式对 VARCHAR 字段进行排序(用零填充)

以数字形式对 VARCHAR 字段进行排序(用零填充)

我的文件中有如下数据

07020,6880A98805,03/09/2014
04374,6880698805,09/01/2014
05019,6880698805,07/01/2014
05020,2710239905,08/02/2007
05020,2710239905,08/31/2007
05021,2710239905,09/01/2007
05806,2710239905,08/30/2007
05807,8803975905,08/01/2014
05808,8803975905,06/01/2014
06019,6880698805,07/01/2006
06020,6880698805,03/09/2014
07807,8803975905,08/01/2014
13375,3470566899,07/16/2015
13376,3470566899,08/16/2016
058030,6880698805,01/12/201
058030,6880698805,01/12/2015
058030,6880698805,01/12/2015
100004,8803975905,03/09/2014
100005,8803975905,01/01/2015
100006,8803975905,02/01/2015
100007,8626833130,01/16/2016
100031,8803975905,01/12/2015
100031,8803975905,01/12/2015
100031,8803975905,01/12/2015
100032,8803975905,01/01/2015

我想按第一个字段(数字)、第二个字段(数字)和第三个字段对文件顺序进行排序。

使用论坛,我尝试了几次,但不知何故,我没有通过使用以下命令获得所需的订单:

sort -n -t',' -k1.1n,1.15n -k2.1n,2.10n -k3.7n,3.10n -k3.1n,3.2n -k3.4n,3.5n <file_name.csv>

有人可以让我知道出了什么问题吗?

答案1

看起来你们已经很接近了。但是,您无法对第二个字段进行数字排序,因为它不完全是数字(A第一行中有一个)。

这对我有用:

sort -t, -k1,1n -k2,2 -k3.7,3.10 -k3.1,3.2n -k3.4,3.5n

相关内容