Removendo histórico ou números de linha do arquivo de histórico do ZSH

4

Por algum motivo, obtenho esses números de linha ímpares ou números de histórico de algum tipo em meu arquivo ~/.zsh_history da seguinte forma:

: 1266694881:0;rake db:migrate

Eu prefiro não recorrer ao regexing no começo, mas eu gostaria que as minhas linhas fossem algo como:

rake db:migrate

Alguém tem alguma sugestão de como resolver isso? Eu encontrei setopt EXTENDED_HISTORY , mas não parece fazer muito.

    
por JP Silvashy 20.02.2010 / 23:43

1 resposta

9

Tente:

unsetopt EXTENDED_HISTORY

Os números são o número de segundos desde a época do Unix de quando o comando começou e a duração em segundos que o comando executou.

Editar:

Esqueci de mencionar que você deve usar o comando fc para interagir com o histórico em vez de analisar o arquivo de histórico. Há pelo menos algumas razões para isso. Uma é que o arquivo de histórico não tem as entradas na memória até que você saia do shell, um limite seja atingido ou você o escreva explicitamente com o comando fc -AI (acredito). Em segundo lugar, você pode deixar EXTENDED_HISTORY ativado e ainda interagir com as entradas sem precisar remover essas informações. Se estiver desativado, quando você executar fc -ld , o shell usará o tempo que o shell iniciou para o registro de data e hora dos comandos no histórico antes desse tempo. Se estiver desligado, ele lembra a data e a hora reais (os números que você está vendo no arquivo).

Veja man zshbuiltins .

Listar as entradas mais recentes:

fc -l

Relacione-os sem números de comando:

fc -ln

Relacione os 20 comandos mais recentes sem números de comando:

fc -ln -20

Inclua um registro de data e hora e imprima apenas o comando mais recente:

fc -lnd -1

Mostrar todos os comandos (nos últimos 50) que incluem a string "setop" (mostra setopt e unsetopt ):

fc -l -m '*setopt*' -50
    
por 21.02.2010 / 00:45

Tags