Como obter comandos antes dos timestamps no 'histórico' no Bash?

0

Eu encontrei esta resposta sobre o histórico de registro de data e hora para o Bash.

Existe alguma maneira de permutar a saída? Em particular

Number command time-stamp

em vez de

Number time-stamp command
    
por DiiP 08.11.2016 / 01:08

1 resposta

1

Você pode processar a saída de history builtin. Primeiro prepare seu HISTTIMEFORMAT de acordo com a resposta que você vinculou:

export HISTTIMEFORMAT="%d.%m.%y %T "

Para obter o resultado desejado, invoque:

history | awk '{ printf "%s\t",$1; for(i=4; i<=NF; i++) printf "%s",$i OFS; printf "\t%s %s\n",$2,$3 }'

Se você substituir history incorporado por uma função:

history() { builtin history | awk '{ printf "%s\t",$1; for(i=4; i<=NF; i++) printf "%s",$i OFS; printf "\t%s %s\n",$2,$3 }'; }

então é suficiente escrever history para conseguir o que você quer.

Nota: os espaços iniciais e a formatação de coluna da saída history nua são perdidos. Como o campo comando não tem comprimento fixo, tê-lo no meio não é uma boa ideia. Eu deliberadamente separei os campos com guias (em vez de espaços) para tornar a saída mais legível. Se você preferir espaços, substitua \t no meu código por (espaço).

    
por 11.11.2016 / 09:08