Como posso obter / filtrar entradas do histórico em um intervalo específico?
Eu tenho um grande arquivo de histórico e uso frequentemente
history | grep somecommand
Agora, minha memória está muito ruim e também quero ver o que mais fiz no momento em que inseri o comando.
Por enquanto, faço isso: concordo, digamos 4992 somecommand
, então faço
history | grep 49[0-9][0-9]
isso geralmente é bom o suficiente, mas eu prefiro fazê-lo com mais precisão, ou seja, ver comandos de 4972 a 5012, ou seja, 20 comandos antes e 20 depois.
Gostaria de saber se existe uma maneira mais fácil? Eu suspeito que um script personalizado esteja em ordem, mas talvez alguém tenha feito algo semelhante antes.
Respostas:
Você pode dizer
grep
para imprimir algumas linhas ao redor da partida, por exemplo, 3 antes e 5 depois:grep -C 4
é equivalente agrep -A 4 -B 4
.Mas muitas vezes você não sabe exatamente quantas linhas deseja com antecedência. Portanto, use menos e pesquise dentro dele. Você pode até iniciar a pesquisa na linha de comando:
fonte
less
! Não sabia que você poderia fazer isso #Tente fc:
... é um comando interno do bash. (então não tente no tcsh:>)
fonte
tentar
history | grep -C20 '^4992'
fonte