Classifique a última saída por mês

3

Eu sei que o comando última | tac é suficiente, mas eu quero fazer isso usando o comando sort. Eu não posso classificá-lo por coluna, ele sempre classifica apenas o primeiro. Usando o bash no Arch Linux.

    
por Li4ick 26.08.2014 / 14:05

1 resposta

5

Parece que você não pode confiar nos campos, então você precisa confiar na coluna de caracteres

         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)

A partir disso:

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

Observe que o sinal M para classificar nomes de mês não é padrão, mas está disponível em várias sort implementações, incluindo o GNU sort (aquele normalmente encontrado no ArchLinux). Observe que sort interpreta os nomes dos meses na localidade atual, enquanto last sempre exibe os nomes dos meses em inglês, portanto você pode querer executar sort em LC_TIME=C se estiver em uma localidade diferente do inglês.

    
por 26.08.2014 / 14:13

Tags