按时间戳排序marix

时间:2016-11-03 11:27:37

标签: bash sorting

我不确定是否适用,但是我需要按照下面第2栏中的时间戳排列以下排序输出,较新的应该在第一行,而较旧的应该在最后一行,所需要的是保持时间格式原样,只需按日期安排

COUNT     FROM             TO
97        Oct 10 10:00:56  Oct 10 10:18:35
9         Mar 10 10:02:09  Oct 10 10:02:55
768       Oct 10 10:01:09  Oct 10 10:18:24
764       Oct 10 10:00:53  Oct 10 10:18:24
33        Oct 10 10:18:35  Oct 10 10:18:39
306       May 10 10:00:52  Oct 10 10:21:20
3         Oct 10 10:00:52  Oct 10 10:00:52
3         Oct 12 15:33:26  Nov 2 03:30:06
2         Oct 17 09:16:53  Oct 17 09:17:05
18        Nov 2 00:07:24   Nov 2 01:03:13
11        Oct 10 10:00:52  Oct 10 10:00:56
10095     Jun 10 10:00:52  Oct 10 10:18:24
10        Oct 10 10:18:40  Oct 10 10:18:45
1         Nov 2 03:21:32   Nov 2 03:21:32
1         Feb 2 01:31:53   Nov 2 01:31:53
1         Aug 2 03:26:24   Nov 2 03:26:24
1         Nov 2 03:21:32   Nov 2 03:21:32
1         Oct 10 10:18:05  Oct 10 10:18:05
1         Oct 17 09:16:52  Oct 17 09:16:52
1         Jan 10 10:02:55  Oct 10 10:02:55
1         Nov 2 23:24:09   Nov 2 23:29:09
1         Oct 10 10:00:52  Oct 10 10:00:52
1         Oct 10 10:00:53  Oct 10 10:00:53
1         Nov 2 03:22:22   Nov 2 03:22:22
1         Apr 2 06:41:29   Nov 2 06:41:29

输出应该是相同的标题,下面是第一行

1         Nov 2 23:24:09   Nov 2 23:29:09

,以及最后一行。

1         Jan 10 10:02:55  Oct 10 10:02:55

1 个答案:

答案 0 :(得分:2)

查看man sort,您会看到可以使用-k选项按列排序。

此选项支持列号和可选的排序方法。

对于您的情况,这可能有效:

sort -k2Mr -k3nr -k4r file.txt

-k2Mr对第二列进行月份排序并将其反转 -k3nr对第三列进行数字排序并将其反转 -k4r对第四列进行排序并将其反转。