Bash 按ID列和日期列排序(MM/DD/YYYY)

Bash 按ID列和日期列排序(MM/DD/YYYY),bash,sorting,unix,Bash,Sorting,Unix,我正在尝试按ID列和日期列对.txt文件进行排序,但日期排序部分无法正常工作 数据: |855986|03/01/1980|100| |855986|06/01/1979|120| |868566|01/01/1999|560| |855986|05/01/2015|856| |868566|09/01/2000|560| 我需要的输出是: |855986|06/01/1979|120| |855986|03/01/1980|100| |855986|05/01/2015|856| |8685

我正在尝试按ID列和日期列对.txt文件进行排序,但日期排序部分无法正常工作

数据:

|855986|03/01/1980|100|
|855986|06/01/1979|120|
|868566|01/01/1999|560|
|855986|05/01/2015|856|
|868566|09/01/2000|560|
我需要的输出是:

|855986|06/01/1979|120|
|855986|03/01/1980|100|
|855986|05/01/2015|856|
|868566|01/01/1999|560|
|868566|09/01/2000|560|
这是我当前的代码,它对ID和月份进行了正确排序,但似乎忽略了日期的年份部分:

sort -t '|' -k 1 -b -k 2.7,2.10 -k 2.1,2.2 file.txt

你很接近。然而,日期字段实际上是字段3,因为
是每行的第一个字符

您可以使用:

sort -b -t '|' -k 3.7,3.10 -k 3.4,3.5 -k 3.1,3.2 file
|855986|06/01/1979|120|
|855986|03/01/1980|100|
|868566|01/01/1999|560|
|868566|09/01/2000|560|
|855986|05/01/2015|856|

你想要2015个在中间吗?什么是排序逻辑?