我正在尝试按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
答案 0 :(得分:3)
你非常接近。但是,日期字段实际上是字段#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|