Ich versuche, alle Dateien zu finden, deren Name mit einem Großbuchstaben beginnt. Ich habe versucht, den folgenden Befehl zu verwenden:
find . -type f -regex '.*\/[A-Z][^/]*'
Es sucht nach Pfaden, die nur Kleinbuchstaben enthalten. Die folgenden Arbeiten:
find . -type f -regex '.*\/[ABCDEFGHIJKLMNOPQRSTUVWXYZ][^/]*'
Ebenso wie:
find . -type f | grep '.*\/[A-Z][^/]*$'
Ich habe alle verschiedenen Optionen für ausprobiert regextype
, mit dem gleichen Ergebnis.
Warum find
werden Kleinbuchstaben eingefügt [A-Z]
? Ich dachte die Regex dafür wäre [a-zA-Z]
. Gibt es eine Möglichkeit, einen Bereich von nur Großbuchstaben in anzugeben find
?
LC_ALL=C find ...
?\/
)? Welchen Fund verwendest du auch (find --version
)?/
ist nur erforderlich, wenn Sie es als Trennzeichen verwenden, zs/foo\/bar/foobar/
. B. in . (Aber oft können Sie ein anderes Trennzeichen verwenden:.s#foo/bar#foobar#
)Antworten:
Sie müssen nicht verwenden
-regex
. Sie können-name
stattdessen verwenden.quelle