Como eu crio uma regra para substituição de sinalizador personalizado com shell C?

1

Eu quero ter o seguinte comportamento com o grep:

grep --java <rest of the command>

Onde --java poderia converter dinamicamente para --include = *. java ou internamente ser equivalente a ele. Existe uma maneira de fazer isso no meu arquivo .cshrc? Eu tentei usar o comando completo, mas não consigo ter o trabalho de substituição na palavra atual.

    
por Cris RR 08.02.2016 / 18:48

2 respostas

0

Se você estiver aberto a usar uma sintaxe diferente (que também é mais curta e mais fácil de digitar nesse caso), basta criar um alias para ela. Adicione isto ao seu ~/.cshrc :

alias jgrep grep --include="*.java"

Depois, você pode executar algo como:

jgrep foo *

E será executado

grep --include="*java" foo *
    
por 08.02.2016 / 19:05
0

Isso não é algo que você possa fazer em tcsh .

Suas opções são:

  • Use um alias, como já foi mencionado por terdon:

    alias jgrep grep --include="*.java"
    
  • Configure um padrão de conclusão. Por exemplo:

    complete grep 'c/--/(complete)/' 'n/--complete/(*.java *.rb *.py)/' 
    

    Isso permitirá que você digite grep --<Tab><Tab>j<Tab> .

  • Use uma variável:

    set java = '--include=*.java'  
    grep -r "$java" foo
    

    Pessoalmente, eu não necessariamente consideraria isso mais fácil.

Finalmente, acho que o the_silver_searcher é muito mais útil e rápido para as árvores de código "grepping". É algo que você pode querer conferir.

    
por 08.02.2016 / 20:55