Como posso imprimir as três últimas datas da próxima saída:
User;month/day/year
user1:01/01/2015
user1:01/01/2015
user1:01/01/2015
...
user1:01/09/2018
user1:01/08/2018
user1:01/07/2018
user1:01/04/2016
user1:01/02/2016
user1:01/01/2016
Neste caso (as datas de 2018)
EDITAR:
Eu tenho o próximo comando com awk:
awk '{ print $1":" substr( $0,285,291 )}' $file_input | awk '{ print $1}' | sort -n -r
Saída Desejada:
user1:01/09/2018
user1:01/08/2018
user1:01/07/2018
Aqui, classifique na
YYYY
parte e depois namm/dd
parte lexicalmente.Isso seria o 7º ao 10º caracteres e 1º ao 5º do segundo
:
campo delimitado respectivamente, então:(aqui adicionando um
-b
para permitir (e ignorar) espaços em branco ao redor do:
)Considere usar a classificação assim:
Isso classifica as linhas com base em 3 campos-chave, com base em um
/
delimitador: primeiro o ano, depois o mês (campo 1, pulando o nome de usuário e os dois pontos), depois o campo 2 - todos ordenados numericamente. Astail -3
saídas apenas as últimas (últimas) 3 linhas/datas.