excluindo todas as ocorrências de um determinado comando do histórico [closed]

0

Estou tentando excluir uma entrada específica no histórico. Esclarecimento - com isso quero dizer apagar todas as ocorrências contendo um determinado comando / ou texto. Eu usei o script hxf do Aliteralmind:

: <

Examples
    hxf "rm -rf"


#The unalias prevents odd errors when calling". ~/.bashrc" (May result in
#"not found" errors. That's okay).
unalias hxf

hxf()  {
read -r -p "About to delete all items from history that match \"$1\".      
Are you sure? [y/N] " response
response=${response,,}    # tolower
if [[ $response =~ ^(yes|y)$ ]]
then
    #Delete all matched items from the file, and duplicate it to a temp
    #location.
    echo -e "grep -v \"$1\" \"$HISTFILE\" > /tmp/history"
    grep -v "$1" "$HISTFILE" > /tmp/history

    #Clear all items in the current sessions history (in memory). This
    #empties out $HISTFILE.
    echo "history -c"
    history -c

    #Overwrite the actual history file with the temp one.
    echo -e "mv /tmp/history \"$HISTFILE\""
    mv /tmp/history "$HISTFILE"

    #Now reload it.
    echo -e "history -r \"$HISTFILE\""
    history -r "$HISTFILE"     #Alternative: exec bash
else
    echo "Cancelled."
fi
}

(de link )

No entanto, depois de executar o script hxf, o histórico me dá: (por exemplo)

401 254: 263: 287: 288: 293: cd ~
402 203: 243: 290: 309: 315: 332: 370: 377: 389: 400: ls
403 200: 207: 255: 263: 302: 325: 359: 378: 385: 393: 397: 399: nedit

Como modificar o script hxf () para eliminar o histórico exibindo uma lista de índices para cada ocorrência de um comando? Depois de executar hxf () eu recebo o acima. Antes de executá-lo, a história fornece:

401 cd ~
402 ls
403 nedit

A lista de entradas fica bastante longa e ilegível rapidamente. Eu preciso que a saída do histórico apareça como antes de executar o hxf, com a única diferença sendo que o (s) comando (s) que eu deletei com hxf () agora foram removidos.

    
por peinal 18.05.2015 / 19:58

1 resposta

2

Se você estiver perguntando como excluir um determinado comando do histórico:

história -d (número)

Obter o número da execução do 'histórico'

    
por 18.05.2015 / 23:46

Tags