按月份对“最后”输出进行排序

按月份对“最后”输出进行排序

我知道命令最后 | tac 就足够了,但我想使用 sort 命令来完成。我无法按列对其进行排序,它总是仅对第一个进行排序。在 Arch Linux 上使用 bash。

答案1

看来你不能依赖字段,所以你需要依赖字符列

         1         2         3         4         5         6         7         
1234567890123456789012345678901234567890123456789012345678901234567890123456789
stephane pts/0        :0               Fri Aug  1 09:48 - 14:34 (17+04:45)
stephane pts/13       :0               Fri Aug  1 16:27 - 13:51 (20+21:24)

由此可知:

last | sort -k1.44,1.46M -k1.48,1.49n -k51

请注意,M按月份名称排序的标志不是标准的,但在sort包括 GNU sort(通常在 ArchLinux 上找到)在内的多种实现中可用。请注意,sort解释当前语言环境中的月份名称,同时last始终输出英文月份名称,因此您可能需要在非英语语言环境中运行 if sortLC_TIME=C

相关内容