Diese Frage hat hier bereits Antworten :
Kommentare
- Das erste Beispiel verwendet die normale Regexp-Syntax, das zweite verwendet erweiterte Syntax. Ihre Version von
find
erwartet offensichtlich standardmäßig die erstere. Sie ' sagen nicht, auf welchem System Sie ' sind – Ihrefind
hat möglicherweise ein Schalten Sie diese Option ein, um die erweiterte Regexp-Analyse zu aktivieren. Unter FreeBSD ist es beispielsweise ' s-E
- @D_Bye ah, dass ' ist ein guter Punkt. CentOS6. Ich ' habe versucht
-regextype posix-extended
und das ' funktioniert auch nicht
Antwort
Wenn Sie GNU
find verwenden, sollte dies für Sie funktionieren
find . -regextype sed -regex "./test[0-9]\{2\}.txt"
Erläuterung
-
-regextype sed
– Verwenden Sie den regulären Posix-Basisausdruck (nur weil das ist es, womit ich vertraut bin) -
./
– notwendig, weil find alle Dateipfade bei einer relativen Suche berücksichtigt, um mit diesem Muster zu beginnen -
[0-9]\{2\}
– 2 Instanzen der Ziffernzeichenklasse[0-9]
mit dem Quantifizierer\{...\}
Klammern sind entkommen – per reguläre Posix-Grundausdrücke