So suchen Sie nach Dateien mit einem bestimmten Muster in os x

2122
Tech500

Ich suche nach einer Möglichkeit, einen riesigen Ordner mit Bildern zu durchsuchen, und wähle nur die Dateinamen aus, die mit einem Muster wie 800x600.jpg oder 645x321.jpg usw. enden.

Es muss einen rohen Suchbefehl für die Suchersuche geben. Regex-basiert ...

Danke Dan

1
Ist `grep` in osx nicht verfügbar ?! adampski vor 8 Jahren 0
Es ist so, aber ich habe keine Ahnung, wie ich all diese grep / regex-Befehle verwenden soll ... Tech500 vor 8 Jahren 0

3 Antworten auf die Frage

1
Ambidextrous

Dies ist ein Beispiel, das ich gerade getestet habe - dies sollte Ihnen eine gefilterte Liste aller Dateien geben, die das Muster von 3 Ziffern gefolgt von einem x, gefolgt von 3 Ziffern und der Erweiterung von haben jpg.

ls | egrep "\dx\d\.jpg" 

Ähnlich können Sie im Allgemeinen alle Dateien in einem Verzeichnis ( Terminal.appnatürlich) mit dem lsBefehl auflisten und dann die Pipe ( |) verwenden, um die Liste der Dateien an grepoder zu übergeben egrep. Ich mag es, egrepweil es eine schönere Syntax für reguläre Ausdrücke hat. Sie können den gleichen Effekt auch mit erreichen grep -E. Beide sind bereits unter OS X verfügbar. Viel Glück!

Ich habe getestet und funktioniert für einen Ordner, scannt jedoch nicht alle Unterordner. Wie kann ich die gefundenen Ergebnisse auswählen und löschen, da es ein Terminalbefehl ist? Thansk Tech500 vor 8 Jahren 0
Die meisten UNIX-Befehle verfügen über ein optionales "rekursives" Flag, mit dessen Hilfe Sie alle Unterordner durchsuchen können. Ambidextrous vor 8 Jahren 0
1
adampski

Um die Antwort von Ambidextrous hinzuzufügen, mit den zusätzlichen Bits, die Sie in den Kommentaren verlangt haben:

ls | egrep -r "\dx\d\.jpg" | xargs rm

Warnung Dadurch wird alles gelöscht, was mit dem übereinstimmt. Es wird empfohlen, den gesamten Ordner zu kopieren, in dem der Vorgang ausgeführt werden soll. Anschließend den obigen Befehl in diesem Verzeichnis ausführen, um die Ergebnisse anzuzeigen.

Wenn Sie alle Dateien ohne Aufforderung für jede Datei löschen möchten, fügen Sie das -fKennzeichen nach hinzuxargs rm

0
Spyderspyders

Ich weiß nicht, ob dies eine "Superbenutzer" Antwort ist, aber ich verwende ein kostenloses Programm namens easyFind. Welches finden Sie hier: www.devontechnologies.com/products/freeware.html