Estoy buscando en una aplicación Ruby on Rails una palabra usando grep
OSX, y me gustaría excluir directorios que coincidan con un patrón determinado.
Estoy usando el siguiente comando:
grep -inRw -E 'direct' . --exclude-dir -E 'git|log|asset'
Este comando no está haciendo lo que pensé que haría. Así es como pensé que funcionaría:
- i - búsqueda insensible a mayúsculas y minúsculas
- n : imprime el número de línea en el que se encuentra el patrón
- R - busca recursivamente
- w - Solo quiero palabras completas, es decir, coinciden con "directo" pero no con "directorio"
- -E - usa expresiones regulares extendidas
- 'directo' : la expresión regular que quiero hacer coincidir
- . - buscar en el directorio actual
- --exclude-dir -E 'git | log | asset' - excluye directorios que coincidan con git o log o asset.
En términos de los directorios de exclusión, el comando todavía termina buscando en los directorios './git' y './log' , así como en './app/assets'
Obviamente me falta un conocimiento fundamental, pero no sé qué es.
fuente
--exclude-dir
no entiende|
.Sin embargo, puede obtener el mismo efecto especificando
--exclude-dir
varias veces, una para cada directorio que desea excluir:fuente
--exclude-dir={home}
. Trabajé cuando--exclude-dir 'home'