Je recherche un mot à l'aide d'une application Ruby on Rails grep
sur OSX, et je voudrais exclure les répertoires qui correspondent à un certain modèle.
J'utilise la commande suivante:
grep -inRw -E 'direct' . --exclude-dir -E 'git|log|asset'
Cette commande ne fait pas ce que je pensais qu'elle ferait. Voici comment je pensais que cela fonctionnerait:
- i - recherche insensible à la casse
- n - numéro de ligne d'impression dans lequel se trouve le motif
- R - recherche récursive
- w - Je veux seulement des mots entiers - c.-à-d. correspondre à "direct" mais pas à "répertoire"
- -E - utilise une expression régulière étendue
- 'direct' - l'expression régulière que je veux faire correspondre
- . - recherche dans le répertoire courant
- --exclude-dir -E 'git | log | asset' - exclut les répertoires qui correspondent à git ou log ou asset.
En termes de répertoires d'exclusion, la commande finit toujours par rechercher dans les répertoires './git' et './log' , ainsi que dans './app/assets'
Je manque évidemment de connaissances fondamentales, mais je ne sais pas ce que c'est.
la source
--exclude-dir
ne comprend pas|
.Vous pouvez cependant obtenir le même effet en spécifiant
--exclude-dir
plusieurs fois, une pour chaque répertoire que vous souhaitez exclure:la source
--exclude-dir={home}
. J'ai travaillé quand j'ai tapé--exclude-dir 'home'