Intentando encontrar cualquier archivo de cierto patrón en un directorio y sus subdirectorios. Lo intenté:
C:\test\workspace>dir *.*.r[0-9]* /s /b
File Not Found
con la esperanza de encontrar archivos como
abc.txt.r12222
tjy.java.r9994
Donde se agrega un número después de la letra r, hecho por SVN.
¿Qué estoy haciendo mal?
Respuestas:
Acabo de responder esto en Stack Overflow hace un par de días. /programming/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872
En su caso, se vería así:
Actualizar
El * en uno de los otros ejemplos ".r [0-9] * $" también encuentra registros que terminan en 'r' ya que el cuantificador * significa 0 o más.
fuente
Mi sugerencia para usted es hacer eso con
grep
: una utilidad para sistemas similares a UNIX que se ha portado a Windows y puede hacer coincidir líneas usando expresiones regulares.grep
se incluye con el paquete MSYS de MinGW, el instalador se puede encontrar aquí . (instalar solo MSYS)Luego tendrá que agregar herramientas MSYS a su variable PATH, el directorio dafeult para MSYS es
C:\MinGW\msys\1.0\bin
Finalmente puedes hacer tu serach con este comando:
... lo que significa: "obtener una salida de
ls -a
(lista de archivos incluidos los ocultos) y pasarlo agrep
, las líneas de solape que se parecen . .R [0-9] * (con al menos un carácter simbolizado por cada asterisco)".fuente
$ 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
en lugar de (entrada estándar): test.jar.r46521Puedes probar esto:
Para obtener ayuda, escriba
findstr /?
.fuente
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]*$
. Eso funciona aquí ...