@Charles Muito obrigado pela dica valiosa ! Isso me leva à solução.
Para manipular a data e o horário das entradas do histórico bash, basta substituir o ~/.bash_history
por um arquivo bruto formatado corretamente. O formato correto para uma entrada é
#TIMESTAMP
command
Então, no meu caso, precisei seguir os seguintes passos:
(passo 0: exportar o histórico para um arquivo de texto: history > history.txt
.)
etapa 1: abra o arquivo em um editor de texto e limpe o arquivo. O resultado deve ser que cada linha consiste em date
+ space
time
+ tab
+ command
. Como no meu caso as entradas foram formatadas como %F%t%T%t
, eu precisava dessa substituição baseada em regex:
FROM: ^([\s]+[0-9]+[\s]+)([0-9]{4}-[0-9]{2}-[0-9]{2})[\s]+([0-9]{2}:[0-9]{2}:[0-9]{2}[\s]+)
TO: $2 $3
etapa 2: copie o resultado para o Calc (ou Excel). Agora temos duas colunas.
etapa 3: converta os valores na coluna data e hora para os registros de data e hora:
=(A1 - DATEVALUE("1/1/1970"))*86400
etapa 4: copie as colunas com os carimbos de data e hora e os comandos de volta ao editor de texto.
etapa 5: converta o resultado para o formato de destino:
FROM: ^([0-9]{10})\t
TO: #$1\n
etapa 6: substitua o ~/.bash_history
pelo arquivo de texto resultante:
$ cp history.txt > ~/.bash_history