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

Li4*_*ick 3 bash sort last

我知道该命令最后 | tac 就足够了,但我想使用 sort 命令来完成。我不能按列排序,它总是只对第一个排序。在 Arch Linux 上使用 bash。

Sté*_*las 5

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

         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)
Run Code Online (Sandbox Code Playgroud)

从中:

last | sort -k1.44,1.46M -k1.48,1.49n -k51
Run Code Online (Sandbox Code Playgroud)

请注意,M对月份名称进行排序的标志不是标准的,但在sort包括 GNU sort(通常在 ArchLinux 上找到的那个)在内的几种实现中可用。请注意,sort在当前语言环境中解释月份名称,而last始终输出英文月份名称,因此您可能希望在非英文语言环境sort下运行LC_TIME=Cif。