Ich kann alle jpg
Bilder erhalten, indem ich benutze:
find . -name "*.jpg"
Aber wie kann ich auch png
Dateien zu den Ergebnissen hinzufügen ?
find
regular-expression
wong2
quelle
quelle
find -name
Antworten:
Verwenden Sie das
-o
Flag zwischen verschiedenen Parametern.find ./ -type f \( -iname \*.jpg -o -iname \*.png \)
klappt wunderbar.HINWEIS Es muss ein Raum zwischen der Halterung und dessen Inhalt oder es wird nicht funktionieren.
Erläuterung:
type -f
- nur nach Dateien suchen (nicht nach Verzeichnissen)\(
- Wird benötigttype -f
, damit alle Argumente berücksichtigt werden-o
- logischer ODER-Operator-iname
- wie-name
, aber die Groß- und Kleinschreibung spielt keine Rollequelle
type -f
nicht erweitern und gelten für beide Ausdrücke ohne die Klammern, alsofind ./ -type f -iname \*.jpg -o -type f -iname \*.png
funktioniert auch ... obwohl es zwei Zeichen länger ist :-)a * b + c
ist anders alsa * (b + c)
Sie können Kriterien kombinieren mit
-o
wie von Shadur vorgeschlagen . Beachten Sie, dass dies-o
eine niedrigere Priorität hat als die Gegenüberstellung, sodass möglicherweise Klammern erforderlich sind.Unter Linux können Sie
-regex
Erweiterungen enger zusammenfassen. Die Standard-Syntax für reguläre Ausdrücke ist Emacs ( einfache reguläre Ausdrücke plus einige Erweiterungen, z. B.\|
für die Abwechslung). Es gibt eine Option, um zu erweiterten regulären Ausdrücken zu wechseln .Unter FreeBSD, NetBSD und OSX können Sie
-regex
kombiniert mit-E
für erweiterte reguläre Ausdrücke verwenden.quelle
-iname
anstatt-name
- dann werden Sie auch erfassenimage.JPG
undimage.PnG
Das ist richtiger:
quelle
-iregex
passtjpg
auch soJPG Jpg jpG
und so. Ich denke das$
wird nicht benötigt.find -E . -iregex '.*\.(jpg|png|gif)'
wie in der Antwort von @ sorin gezeigt.Die einzige Option, die unter Linux, Unix und MacOS funktioniert, ist:
Das liegt daran, dass die OS X-Version ein bisschen anders ist, aber das ist wichtig, um Dinge zu schreiben, die auf den meisten Plattformen gut funktionieren.
quelle
-type f \( -iname \*.png -o -iname \*.jpg\)
funktioniert nicht unter OSX?Benutze es.
quelle