J'ai une arborescence de répertoires composée de plusieurs milliers de sous-répertoires, mais je n'ai souvent besoin de grep qu'un petit sous-ensemble de ces répertoires. Comment puis-je grep
uniquement les sous-répertoires correspondant à un modèle?
Par exemple, supposons que j'ai ces sous-répertoires dans lesquels je veux grep:
...
...
...
/foo
/fooLib
/fooHandler
/fooGizmo
...
...
...
Les ...
entrées ci-dessus représentent les milliers d'autres répertoires dans lesquels je ne veux pas faire de grep.
Supposons que je recherche toutes les instances de bar
, si je fais ceci:
grep -n --recursive bar *
Je trouverais ce que je cherche, mais dans tous les répertoires. Comment puis-je rechercher uniquement dans les sous-répertoires correspondant au modèle foo*
?
/foo
et amis? Dans/foo
et/foo/bar
et/foo/bar/qux
et ainsi de suite , mais pas/wibble/foo
? Dans/foo
et/wibble/foo
mais pas/foo/bar
? Dans/foo
et/foo/bar
et/wibble/foo
mais pas/elsewhere
?Réponses:
Vous pouvez utiliser grep et trouver une combinaison comme ci-dessous:
Ou vous pouvez utiliser
Ou en utilisant grep uniquement
la source
foo*
?grep -R "test" /foo*
) est exactement ce que je fais actuellement, donc j'accepte.{}
et la barre oblique inverse?essayez
grep foo* <other parts>
par exemple:grep foo* -name "book*"
la source
bar
dans tous les fichiers des sous-répertoires nommésfoo*
, cela devrait-il être comme cecigrep --recursive bar ./foo*/*
:?