Comandos de pesquisa no histórico com palavras-chave descontínuas

12

Eu queria saber como pesquisar comandos no histórico sem conhecer as primeiras letras do comando?

Quando pesquisar usando Ctrl - R no bash, deve-se dar as primeiras letras do comando. E se eu só conheço alguns personagens no meio, ou alguns no começo e outros no meio?

Por exemplo, para pesquisar cat myfile , só sei que há at , ou c no início e my no meio em algum lugar. palavras-chave devem ser posicionadas continuamente. Por exemplo, em cat myfile , gostaria de pesquisar os dois c e my , mas Ctrl+R não permitirá especificar os dois simultaneamente.

    
por Tim 12.07.2011 / 02:14

3 respostas

12

Se você está apenas olhando para encontrar a linha (para movimentar sua memória), você poderia apenas grep para a parte do comando que você lembra:

history | grep "substring"
    
por 12.07.2011 / 02:17
6

O Bash só tem uma pesquisa de string simples, até onde eu posso ver.

Considere mudar para zsh , que tem uma pesquisa de curinga de histórico. history-incremental-pattern-search-backward e history-incremental-pattern-search-forward não estão vinculados a chaves por padrão, mas você pode vinculá-las:

bindkey '^X^R' history-incremental-pattern-search-backward
bindkey '^X^S' history-incremental-pattern-search-forward

Em seguida, digite Ctrl+X Ctrl+R ^c*my .

    
por 14.07.2011 / 00:36
0
Apropos (1) também deve retornar um homem para o assunto, se o homem contiver essa palavra. Whatis (1) retorna apenas correspondências absolutas.

Para referência: Apropos == homem -k Whatis == homem -f

Estes dois devem ser de grande ajuda, juntamente com curingas * e?

    
por 12.07.2011 / 02:50