Essayer de trouver des fichiers d'un certain modèle dans un répertoire et ses sous-répertoires. J'ai essayé:
C:\test\workspace>dir *.*.r[0-9]* /s /b
File Not Found
dans l'espoir de trouver des fichiers comme
abc.txt.r12222
tjy.java.r9994
Où un nombre est ajouté après la lettre r, fait par SVN.
Qu'est-ce que je fais mal?
Réponses:
Je viens de répondre à cela sur Stack Overflow il y a quelques jours. /programming/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872
Dans votre cas, cela ressemblerait à:
Mise à jour
Le * dans l'un des autres exemples ".r [0-9] * $" trouve également les enregistrements qui se terminent par "r" puisque le * quantificateur signifie 0 ou plus.
la source
Ma suggestion pour vous est de le faire avec
grep
- un utilitaire pour les systèmes de type UNIX qui a été porté sur Windows et qui peut faire correspondre les lignes à l'aide d'expressions régulières.grep
est inclus avec le package MSYS de MinGW, le programme d'installation peut être trouvé ici . (installez uniquement MSYS)Ensuite, vous devrez ajouter des outils MSYS à votre variable PATH, le répertoire dafeult pour MSYS est
C:\MinGW\msys\1.0\bin
Enfin, vous pouvez faire votre serach avec cette commande:
... ce qui signifie: "obtenez la sortie de
ls -a
(liste des fichiers, y compris les fichiers cachés) et passez-la àgrep
, faites correspondre les lignes qui ressemblent à . .r [0-9] * (avec au moins un caractère symbolisé par chaque astérisque)".la source
$ ls -R | grep -H ^.*[0-9]$ (standard input):res.jar.r469621 (standard input):res.jar.r464460 (standard input):test.jar.r46521 (standard input):test.jar.r46970
c:\pager\test.jar.r46521
par opposition à (entrée standard): test.jar.r46521Vous pouvez essayer ceci:
Pour obtenir de l'aide, tapez
findstr /?
.la source
C:\Temp>findstr /S /B [0-9] . C:\Temp>findstr /S /B r[0-9]$ . C:\Temp>findstr /S /B $.*r[0-9]$ C:\Temp>findstr /S /B $.*r*$ C:\Temp>findstr /S /B $.*r..*$ C:\Temp>findstr /S /B $.*r\..*$ C:\Temp>findstr /S /B /R $.*r\..*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" . C:\Temp>findstr /S /B /R "$.*\..r[0-9]$" . C:\Temp>findstr /S /B /R "$.*[0-9]*" . C:\Temp>findstr /S /B /R "$*[0-9]*" .
C:\Temp>dir /aa| findstr .r[0-9]*$
C:\Temp>dir /aa | findstr .r[0-9]*$ File Not Found
dir /aa| findstr .r[0-9]*$
. Cela fonctionne ici ...