Es wird versucht, Dateien mit einem bestimmten Muster in einem Verzeichnis und seinen Unterverzeichnissen zu finden. Ich habe es versucht:
C:\test\workspace>dir *.*.r[0-9]* /s /b
File Not Found
in der Hoffnung, Dateien wie zu finden
abc.txt.r12222
tjy.java.r9994
Wenn nach dem Buchstaben r eine Nummer angehängt wird, erfolgt dies durch SVN.
Was mache ich falsch?
Antworten:
Ich habe dies vor ein paar Tagen auf Stack Overflow beantwortet. /programming/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872
In Ihrem Fall würde es so aussehen:
Aktualisieren
Das * in einem der anderen Beispiele ".r [0-9] * $" findet auch Datensätze, die mit 'r' enden, da der * Quantifizierer 0 oder mehr bedeutet.
quelle
Mein Vorschlag für Sie ist, dies mit
grep
einem Dienstprogramm für UNIX-ähnliche Systeme zu tun, das auf Windows portiert wurde und Zeilen mit regulären Ausdrücken abgleichen kann.grep
ist im MSYS-Paket von MinGW enthalten. Das Installationsprogramm finden Sie hier . (nur MSYS installieren)Dann müssen Sie Ihrer PATH-Variablen MSYS-Tools hinzufügen, dafeult-Verzeichnis für MSYS ist
C:\MinGW\msys\1.0\bin
Schließlich können Sie Ihre Suche mit diesem Befehl durchführen:
... das bedeutet: „get Ausgang aus
ls -a
(Dateiliste versteckte Dateien einschließlich) und übergeben es angrep
, Anpassungsleitungen , die aussehen wie . .R [0-9] * (mit mindestens einem Zeichen von jedem Stern symbolisiert)“.quelle
$ 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
im Gegensatz zu (Standardeingabe): test.jar.r46521Sie können dies versuchen:
Um Hilfe zu erhalten, geben Sie ein
findstr /?
.quelle
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]*$
. Das funktioniert hier ...