So verwenden Sie (THIS=x OR THAT=Y) AND OTHER=Z mit dem Suchbefehl

So verwenden Sie (THIS=x OR THAT=Y) AND OTHER=Z mit dem Suchbefehl

Ich konvertiere meine Videobibliothek von x264 nach x265 und verwende dazu Folgendes:

Es sucht an beliebiger Stelle im Dateinamen nach x264, schließt jedoch alle aus, die mit x265 beginnen, da dies die Dateien sind, die abgeschlossen wurden.

sudo find /mnt/local/int001/media/TV/ -name '*x264*.mkv' -and -not -name 'X265*.mkv' -print0 | xargs -0 /usr/local/bin/ConvertTo265.sh

Ich habe viele gefunden, die als h264 (Encoding Standard) statt als x264 (Spezifische Implementierung von h264) sowie mit anderen Variationen gekennzeichnet sind.

Wie verbessere ich meine Suche nach:

Enthält NICHT „X265*“, aber EINES oder mehrere der folgenden Elemente:

  • 'x264'
  • 'h264'
  • 'h.264'

Antwort1

find /mnt/local/int001/media/TV/ \
  \( -name '*[xXhH]264*.mkv' -o -name '*[xXhH].264*.mkv' \) \
  ! -name '*[xX]265*' -type f -exec /usr/local/bin/ConvertTo265.sh {} +

Ersetzen Sie hier Ihre GNUismen ( -and, -not, -print0/ xargs -0) durch ihre Standardäquivalente ( -aoder nichts, da dies die Standardeinstellung ist, !, -exec cmd {} +).

Ersetzen Sie es mkvdurch [mM][kK][vV], wenn die Groß-/Kleinschreibung der Erweiterung ebenfalls ignoriert werden soll (oder verwenden Sie , -inamewenn Sie GNU findoder ein kompatibles Gerät verwenden).

Mit zsh:

set -o extendedglob # best in ~/.zshrc
ConvertTo265.sh ./**/(#i)(*x265*~*[xh](.|)264*).mkv(D.)

verwandte Informationen