Ich habe ein Problem mit „find“ und regulären Ausdrücken. Ich möchte Dateien in /etc finden, deren Name mit a oder b beginnt. Ich habe diese Befehle ausprobiert:
find /etc -type f -regex '^a'
find /etc -regextype sed -regex "^a"
find /etc -regextype egrep -regex '^a'
find /etc -regextype posix-egrep -regex '^a'
Funktioniert aber nicht. Ich habe 20 Dateien in /etc, deren Namen mit a beginnen, aber mein regulärer Ausdruck findet diese Dateien nicht. Was mache ich falsch?
Viele Grüße, Paweł
Antwort1
-regex
stimmt mit dem vollständigen Pfad überein, nicht nur mit dem Dateinamen.
Das Nächstliegende, was mir eingefallen ist, wäre:
find /etc -type f -regex '.+/[ab][^/]+'
Dies entspricht einem /
, gefolgt von a
oder b
, gefolgt von allem, was kein weiteres ist /
.
Antwort2
Früher war dies ganz einfach mit:
find /etc -type f -name 'a*'