web-dev-qa-db-fra.com

Recherche récursive d'une chaîne sur le système d'exploitation Windows

Je veux rechercher une chaîne, par exemple "principal" dans mon projet sur Windows OS récursivement. J'ai cherché cela et j'ai trouvé une solution ligne de commande grep récursive Windows

J'ai appliqué la même chose avec deux approches différentes, et le résultat n'est pas comme prévu.

par exemple. mon approche

findstr /S "main" *.cpp

mais quand je choisis

findstr /S "int main" *.cpp

Je n'obtiens pas seulement ma fonction principale. Quelle est la différence entre ces deux approches? est-ce mal de donner de l'espace aux chaînes?

12
someone

C'est parce que findstr prend un ensemble de chaînes à rechercher. Pour faire correspondre la chaîne int main vous devez utiliser le /C option:

findstr /s /C:"int main" *.cpp

tandis que votre variante vous donne chaque ligne avec int ou main.

20
Joey

Un peu tard pour la fête ici, mais si vous utilisez

findstr /S "int.main" *.cpp

il traitera le point comme un joker, qui correspond à un espace, et tant que cela ne vous dérange pas certaines correspondances superflues (ce qui est peu probable dans ce cas), cela fonctionnera bien pour vous.

J'utilise cela, ne connaissant pas l'option/C: avant de lire les réponses ci-dessus.

1
T G