J'imagine que cela pourrait être fait en 1 ligne, mais cela semblait un peu lourd, j'ai donc créé un script pour faciliter le lancement et l'édition et je l'ai appelé findvids.sh
C'est ce qui a fonctionné pour moi.
Remarque: je n'ai peut-être pas couvert TOUS les types de fichiers vidéo, mais je suis sûr que j'en ai la plupart. Une exception notable est .mkv car c'est le format cible pour le projet et je n'ai pas besoin de trouver les fichiers qui ont déjà été traités. Il devrait être très simple d'ajouter des formats supplémentaires (extensions) au script en fonction de vos besoins en examinant le modèle et en ajustant en conséquence tout en conservant les guillemets au début et à la fin de l'expression. Notez que les fichiers que vous n'êtes pas autorisé à lire ne seront pas trouvés.
#!/bin/bash
#This script is intended to find virtually all video file formats.
find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp*$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
Modifier en fonction du commentaire: le $
à la fin de l'extension signifie que le terme de recherche doit être trouvé à la fin de la ligne. si nous voulions faire correspondre le début de la ligne à la place, nous utiliserions ^
avant le terme que nous avons l'intention de faire correspondre. Vous pouvez trouver ces ancres expliquées plus en détail ici.
J'ai fait une comparaison de vitesse à l'aide de l'outil de localisation et les résultats sont les suivants:
time locate *.mkv *.webm *.flv *.vob *.ogg *.ogv *.drc *gifv *.mng *.avi *.mov *.qt *.wmv *.yuv *.rm *.rmvb *.asf *.amv *.mp4$ *.m4v *.mp *.m?v *.svi *.3gp *.flv *.f4v
real 0m8.887s
user 0m5.814s
sys 0m0.052s
contre.
time find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp4$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
real 0m2.795s
user 0m0.657s
sys 0m1.115s
De façon inattendue, la recherche est plus rapide. Je vais utiliser cette approche.
Edit: des tests supplémentaires indiquent que la localisation a été plus rapide sur une autre machine. Je pense que mes résultats de test de vitesse initiaux étaient superposés en raison de la mise en cache.
Sources:
man find
man grep
/programming/7190565/unix-find-multiple-file-types