Estou pesquisando em um aplicativo Ruby on Rails uma palavra usando grep
no OSX e gostaria de excluir diretórios que correspondam a um determinado padrão.
Estou usando o seguinte comando:
grep -inRw -E 'direct' . --exclude-dir -E 'git|log|asset'
Este comando não está fazendo o que eu pensei que faria. Aqui está como eu pensei que iria funcionar:
- i - pesquisa sem distinção entre maiúsculas e minúsculas
- n - imprime o número da linha na qual o padrão é encontrado
- R - pesquisa recursivamente
- w - só quero palavras inteiras - ou seja, corresponda "direct", mas não "directory"
- -E - use expressão regular estendida
- 'direct' - a expressão regular que quero corresponder
- . - pesquisa no diretório atual
- --exclude-dir -E 'git | log | asset' - exclui diretórios que correspondem ao git ou log ou ativo.
Em termos de diretórios de exclusão, o comando ainda acaba pesquisando nos diretórios './git' e './log' , bem como em './app/assets'
Obviamente, não tenho um conhecimento fundamental, mas não sei o que é.
fonte
--exclude-dir
não entende|
.No entanto, você pode obter o mesmo efeito especificando
--exclude-dir
várias vezes, uma para cada diretório que deseja excluir:fonte
--exclude-dir={home}
. Eu trabalhei quando eu digitei--exclude-dir 'home'