0
votes

Comment la recherche de fichier spécifier mais que vous ne connaissez pas avec le dossier de chemin est (en bash)?

Je peux trouver le contenu dans tous les fichiers appelés valeurs.YAML avec

trouver. -Name valeurs.YAML | Xargs Grep -re Port -e Cible --Color

Mais je voudrais seulement trouver les valeurs.YAML dans les dossiers appelés "étage", donc chemin / bla / bla / étage / valse.yaml

J'ai ma meilleure approche avec ça

trouver ./*/*/*/stage/ -Name valse.YAML | Xargs Grep -re Port -e Cible --Color

Le problème est que le dossier de scène est parfois au niveau 4, quelqu'un au niveau 3 ou 5, etc ... je voudrais faire quelque chose comme ça, mais ne fonctionne pas

trouver ./**/stage/ -Name valeurs.YAML | Xargs Grep -re Port -e Cible --Color

Il y a un moyen de le faire quel que soit le niveau où se trouve le dossier de scène?

Merci beaucoup!


1 commentaires

Pas exactement ce que vous demandez, mais en supposant que vous écriviez un script, que diriez-vous d'écrire cela dans ZSH au lieu de baster et d'accéder simplement aux fichiers par ** / valse / valse.yaml ?


4 Réponses :


1
votes

Il est probablement plus facile à utiliser -regex : xxx

ou, plus précisément: xxx


3 commentaires

ou même valeurs \ .YAML


@choroba, bonne prise. Cela correspond également incorrectement des chemins tels que ./ scène / foobues.yaml


Utiliser -Path est beaucoup plus approprié. Je ne sais pas si je devrais supprimer cette réponse: il semble être utile, mais ne doit pas être accepté.



0
votes

Peut-être sur cette voie?

trouver. -Name Stage -Type D -exec Trouver {} -Name valse.YAML \; | Xargs Grep -re Port -e Cible --Color


0 commentaires

2
votes

Vous pouvez trouver la recherche de correspondre au chemin:

find -path '*/stage/*' -name values.yaml


0 commentaires

0
votes

OK, cavalier scriptor : un test a fonctionné super, un différent n'est jamais revenu. Je soupçonne que le mauvais est spécifique à quelque chose sur mon ordinateur portable, mais faites vos propres tests et ne perdez pas de temps sur quelque chose qui est trop lent.

qui dit: xxx


1 commentaires

Apparemment, quelque chose mit un lien symbolique récursif quelque part. Cela devrait être assez sûr autrement.