2015-09-29 19 views
1

我想通過ID列和日期列對.txt文件進行排序,但日期排序部分不工作,因爲我需要它至。按ID列和日期列排序(MM/DD/YYYY)

數據:

|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

你想2015年在中間?什麼是排序邏輯? – karakfa

回答

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| 
+0

@JJeremyMcNees:我可以知道你爲什麼從這個答案中刪除了驗收標記嗎? – anubhava