- 论坛徽章:
- 1
|
cat file.txt
1034 7:26
1025 7:27
1101 7:32
1006 7:45
1012 7:46
1028 7:49
1029 17:49
1051 7:51
1029 7:57
1039 21:57
1042 7:59
1008 8:01
1052 8:05
1005 8:12
我想使得$2按照时间排序,成为以下形式。
1034 7:26
1025 7:27
1101 7:32
1006 7:45
1012 7:46
1028 7:49
1051 7:51
1029 7:57
1042 7:59
1008 8:01
1052 8:05
1005 8:12
1029 17:49
1039 21:57
我只会用以下两种方法实现,感觉比较麻烦。
awk '{printf("%s %05s\n",$1,$2)}' file.txt|sort -k2|sed 's/ 0/ /'
awk -F '[ \t:]+' '{print $1,$2,$3}' file.txt|sort -k2n -k3n|awk '{print $1,$2":"$3}'
还有种把小时转换成分钟再进行排序的方法就更繁琐了。
请问有直接用sort实现排序的方法吗?sort的t参数好像一次只能定义一个分隔符,比较棘手。
更简便的也行,貌似此帖有经的嫌疑 |
|