Estou trabalhando com um arquivo bash_history contendo blocos com o seguinte formato:#unixtimestamp\ncommand\n
aqui está um exemplo do arquivo bash_history:
#1713308636
cat > ./initramfs/init << "EOF"
#!/bin/sh
/bin/sh
EOF
#1713308642
file initramfs/init
#1713308686
cpio -v -t -F init.cpio
#1713308689
cpio -v -t -F init.cpio
#1713308690
ls
#1713308691
ls
Meu objetivo é desduplicar totalmente os blocos, ou seja, tanto o carimbo de data/hora quanto os comandos associados. Tentei usar awk
, mas essa abordagem processa as linhas individualmente, não as considerando como parte de um bloco.
Ouvi dizer que o uso ignoredups
evita a desduplicação, mas não funcionará neste caso ( a menos que você digite novamente o comando exato ) porque o comando duplicado já está lá.
Eu apreciaria sugestões sobre uma maneira mais eficaz de conseguir essa desduplicação.
EDIT: conforme sugerido por Ed Morton no comentário, aqui está o resultado esperado:
#1713308636
cat > ./initramfs/init << "EOF"
#!/bin/sh
/bin/sh
EOF
#1713308642
file initramfs/init
#1713308686
cpio -v -t -F init.cpio
#1713308690
ls
como solução alternativa, adiciono a funcionalidade de exclusão a este programa . mas ainda estou aberto a outras abordagens que usam comandos existentes.