![So verwenden Sie (THIS=x OR THAT=Y) AND OTHER=Z mit dem Suchbefehl](https://rvso.com/image/164711/So%20verwenden%20Sie%20(THIS%3Dx%20OR%20THAT%3DY)%20AND%20OTHER%3DZ%20mit%20dem%20Suchbefehl.png)
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 ( -a
oder nichts, da dies die Standardeinstellung ist, !
, -exec cmd {} +
).
Ersetzen Sie es mkv
durch [mM][kK][vV]
, wenn die Groß-/Kleinschreibung der Erweiterung ebenfalls ignoriert werden soll (oder verwenden Sie , -iname
wenn Sie GNU find
oder ein kompatibles Gerät verwenden).
Mit zsh
:
set -o extendedglob # best in ~/.zshrc
ConvertTo265.sh ./**/(#i)(*x265*~*[xh](.|)264*).mkv(D.)